我正在尝试以下代码来接收JSON。但是,解码不会产生结果。它适用于带有转义斜杠的相同字符串的副本。
<?php
$input = file_get_contents('php://input');
logToFile("post.txt",$input);
#Output: {"id":"id1","model":"model1","version":"v1","software":["s1","s2","s3"]}
$data = json_decode($input,true);
logToFile("post.txt",$data['version']);
#Output:Empty result
### Works
$data1 = json_decode("{\"id\":\"id1\",\"model\":\"model1\",\"version\":\"v1\",\"software\":[\"s1\",\"s2\",\"s3\"]}",true);
logToFile("post.txt",$data1['version']);
#Output:v1
function logToFile($filename,$msg)
{
$fd=fopen($filename,"a");
$str="[".date("Y/m/d h:i:s")."]".$msg;
fwrite($fd,$str."\n");
fclose($fd);
}
?>
我使用的是PHP 5.4。因此,它不是魔术引号中的问题。有什么帮助吗?
答案 0 :(得分:0)
我认为问题不在于json_decode。
$input = '{"id":"id1","model":"model1","version":"v1","software":["s1","s2","s3"]}';
$data = json_decode($input,true);
echo $data['version'];
工作正常。
所以,如果你去:
echo "<pre>";
print_r( $input );
echo "</pre>";
从文件中获取$输入后。看起来好吗?