我堅持這個問題。這裏是我的代碼:無法從文件json_decode() - 語法錯誤
<?php
$arr = [
'from_name' => 'Rosresurs1.ru',
'from_email' => '[email protected]',
'reply_email' => '[email protected]',
'subject' => 'Вас приветствует Росресурс!',
'reply_us' => 'Вопрос нам',
'charset' => 'UTF-8',
'headers' => ['List-Unsubscribe: <mailto:[email protected]?subject=Unsubscribe>, <http://rosresurs.net/escript/unsubscribe.php?token=$token>', 'Precedence: bulk']
];
echo 'Var dump array to encode: <br>';
var_dump($arr);
//Encoding
$done = json_encode($arr, JSON_UNESCAPED_UNICODE);
echo 'Echo encoded array to json: <br><br>';
echo $done . "<br><br><br><br>";
//Decoding
echo "Starting decoding from file: <br><br>";
$var = json_decode('mailconfig.json', true);
$json_errors = array(
JSON_ERROR_NONE => 'No error has occurred',
JSON_ERROR_DEPTH => 'The maximum stack depth has been exceeded',
JSON_ERROR_CTRL_CHAR => 'Control character error, possibly incorrectly encoded',
JSON_ERROR_SYNTAX => 'Syntax error',
);
echo 'Last JSON error found: ', $json_errors[json_last_error()], PHP_EOL, PHP_EOL . '<br><br>';
echo 'Var dump variable: <br>';
var_dump($var);
,這裏是輸出:
這裏是JSON文件,從中我試圖解碼JSON:
{"from_name":"Rosresurs1.ru","from_email":"[email protected]","reply_email":"[email protected]","subject":"Вас приветствует Росресурс!","reply_us":"Вопрос нам","charset":"UTF-8","headers":["List-Unsubscribe: , ","Precedence: bulk"]}
隨着英語新ee我的數組包含UTF-8符號,所以我使用JSON_UNESCAPED_UNICODE選項對它們進行了編碼。但是,當我嘗試解碼(從文件),它失敗。但是當我嘗試從編碼變量$ done解碼時,它完美地工作。
我的JSON文件包含相同的$完成輸出(從瀏覽器中複製並粘貼到文件)。 json_last_error表示這是一個語法錯誤。但沒有一個......
而且我粘貼JSON字符串從文件到網上JSON語法驗證服務,它返回「一個有效的JSON字符串」。
P.S.我做了很多回聲幫助程序(見截圖),所以你可以快速解決問題(如開始編碼和解碼點)。
嗯。這很簡單:)謝謝:) –