0

我正在尝试以下代码来接收 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。所以这不是魔术引号的问题。有什么帮助吗?

4

1 回答 1

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>";

从文件中获取 $input 之后。它看起来好吗?

于 2013-05-30T06:04:49.947 回答