0

このコンテンツを含む.jsonファイルがあります:

{ "questions": "reponse" }

そして、ファイルの内容をPHP配列に解析したいのですが、奇妙な問題があります...

$path = 'myFile.json';
echo file_get_contents($path); 
echo var_dump(json_decode(file_get_contents($path), true));
echo var_dump(json_decode(utf8_encode(file_get_contents($path), true)));
$json = '{ "questions": "reponse" }';
echo var_dump(json_decode($json, true));

そして、私の画面の結果は次のとおりです。

{ "questions": "reponse" }
null
null
array (size=1)
  'questions' => string 'reponse' (length=7)

ファイルの文字列とプログラムの文字列の違いは何ですか?

ありがとうございました!

4

2 に答える 2

0

このコードを実行してみてください:

var_dump(json_decode(trim(file_get_contents($path)), true));

問題を引き起こす空白(BOM / UTF-8ヘッダーなど)があると思います。

于 2012-11-24T15:12:18.603 に答える
0

utf8_encode()たった1つのパラメータを取ります。あなたは2つを渡します。修正されると、次のように機能します。

{ "questions": "reponse" }
array(1) {
  ["questions"]=>
  string(7) "reponse"
}
object(stdClass)#1 (1) {
  ["questions"]=>
  string(7) "reponse"
}
array(1) {
  ["questions"]=>
  string(7) "reponse"
}
于 2012-11-24T15:13:30.633 に答える