Приветствую. Имеем файл conf.php: PHP: <?php $siteVars = array( 'siteLang' => '', 'sitename' => '', 'siteEmail' => '', 'adminEmail' => '', 'semdMethod' => 0, 'smtphost' => '', 'smtplogin' => '', 'smtppass' => '', 'smtpport' => 25, 'script' => '', 'dbHost' => '', 'dbUser' => '', 'dbPass' => '', 'dbName' => '', 'siteDarkHex' => '', 'siteDarkRGB' => '', 'siteLightHex' => '', 'siteLightRGB' => '', 'galleryHighlightHex' => '', 'galleryHighlightRGB' => '', 'feedbackColorSheme' => '', 'sliderImgFolder' => '', 'bcDividerHex' => '', 'bcDivider' => '', 'namingMode' => 2, 'headerParallax' => 0, 'useCash' => 1, 'categoryViewMode' => 2, 'categoryViewSymbols' => 100, 'irc' => '', 'irc-secret' => '', 'prevSend' => 0, 'sendInterval' => 180, 'devMode' => 0 ) ?> Надо превратить его в JSON и сохранить в файл conf.json с тем чтобы в последствии этот conf.json использовать потом и уйти от conf.php (совсем). С эти успешно справляемся, однако когда начинаем читать json из созданного файла json_decode возвращает строку а не массив, при этом, если результат работы json_encode в файл не записывать а сразу декодировать обратно, то все - хорошо, возвращается массив. Код обработки массива из conf.php: PHP: ini_set('error_reporting', E_ALL); $config = 'conf.php'; $configJSON = 'conf.json'; include($config); if ( file_exists($config) ){ if ( !file_exists($configJSON) ){ $configContent = json_encode($siteVars); if ( file_put_contents($configJSON, json_encode($configContent)) ){ echo 'Конфигурация сохранена в файле <b>'.$configJSON.'</b><br><hr>'; echo '<p>'; var_dump(json_decode(file_get_contents($configJSON)),true); echo '</p><hr>'; }else{ echo 'Ой! Конфигурация <b><u>не</u><b> сохранена в файле <b>'.$configJSON.'</b>'; } } else { if ( !is_array(json_decode(file_get_contents($configJSON),true)) ){ echo 'json_decode <b><u>не</u></b> сработал</u></b> с содержимым файла '.$configJSON.' и вернул не массив.<br>'; echo '<p>'; var_dump(json_decode(file_get_contents($configJSON)),true); echo '</p><hr>Ошибок перекодировки json: '.json_last_error().'шт.<br><hr><p></p>'; } else { echo 'json_decode <b><u>сработал</u></b> с содержимым файла '.$configJSON.' и вернул массив.<br>'; echo '<p>'; var_dump(json_decode(file_get_contents($configJSON)),true); echo '</p><hr>Ошибок перекодировки json: '.json_last_error().'шт.<br><hr><p></p>'; } echo '<p>'; echo 'Прямая перекодировка туда-обратно без записи json в файл.<br>'; if ( is_array(json_decode(json_encode($siteVars),true)) ){ echo 'Работает и возвращает массив:<br>'; var_dump (json_decode(json_encode($siteVars,true)); // Возвращает строку echo '<br>'; } else { echo 'Не работает и возвращает не массив:<br>'; var_dump (json_decode(json_encode($siteVars),true)); echo '<br>'; } echo '</p><hr>Ошибок перекодировки json: '.json_last_error().'шт.<br><hr><p></p>'; } }else{ echo '<p>Файл <b>'.$config.'</b> не существует</p></hr>'; } ?> Подскажите, где собака порылась, почему так странно ведет себя json_decode и как заставить ее парсить json из файла в массив?