jsen_encode与file_get_contents有关

时间:2012-11-24 15:09:07

标签: php json

我有一个包含此内容的.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)

文件中的字符串与程序中的字符串有什么区别?

谢谢!

2 个答案:

答案 0 :(得分:0)

尝试运行此代码:

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

我希望有一些空格(比如BOM / UTF-8标题)会造成麻烦。

答案 1 :(得分:0)

utf8_encode()只需一个参数。你传了两个。一旦修好,它就会起作用:

{ "questions": "reponse" }
array(1) {
  ["questions"]=>
  string(7) "reponse"
}
object(stdClass)#1 (1) {
  ["questions"]=>
  string(7) "reponse"
}
array(1) {
  ["questions"]=>
  string(7) "reponse"
}