この問題が発生しました。ここに私のコードは次のとおりです。ファイルから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"]}
あなた私の配列にはUTF-8シンボルが含まれているので、JSON_UNESCAPED_UNICODEオプションを使ってエンコードしました。しかし、(FIOMから)デコードしようとすると失敗します。しかし、コード化された変数$ doneからデコードしようとすると、完全に動作します。
私のjsonファイルには、同じ$ done出力(ブラウザからコピーしてファイルに貼り付け)が含まれています。 json_last_errorは構文エラーだと言っています。しかし、誰もいません...
また、jsonの文字列をファイルからオンラインjson構文検証サービスに貼り付け、「有効なJSON文字列」を返しました。
P.S.私はエコーヘルパーをたくさん作りました(スクリーンショットを参照)ので、問題を早く(エンコードポイントとデコードポイントの開始など)得ることができます。
ウンム。それはかなり簡単です:)ありがとう:) –