我坚持这个问题。这里是我的代码:无法从文件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.我做了很多回声帮助程序(见截图),所以你可以快速解决问题(如开始编码和解码点)。
嗯。这很简单:)谢谢:) –