这是我的原始代码:
$returnArray=array(
'loginUrl'=>$url."/?page_id=2732",
'clientNumber'=>$clientNumber,
'clientName'=>$_SESSION['userName']
);
echo json_encode($returnArray);
这是我的接收结束代码:
$ch = curl_init();
curl_setopt($ch,CURLOPT_URL, $url);
curl_setopt($ch,CURLOPT_POST, count($fields));
curl_setopt($ch,CURLOPT_POSTFIELDS, $fields_string);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$result = trim(curl_exec($ch));
curl_close($ch);
$result = json_decode($result,true);
最后这里是$result
var_dump
string(194) "
{"loginUrl":"http:\/\/www.xxxxxxxxxxxx.co.il\/chtsystem\/?page_id=2732","clientNumber":"11111","clientName":"\u05d0\u05d1\u05d9 \u05d4\u05de\u05d3\u05d1\u05d9\u05e8 - www.yyy-yyyyyyy.co.il"}"
$result
从解码中出现null
,当打印json错误时,我可以看到"JSON_ERROR_SYNTAX"
已开启
这里有什么问题?
答案 0 :(得分:1)
在JSON字符串中有一个领先的新行没有错。但是你可能有一个UTF-8 BOM,json_decode()
无法应对。
BOM最可能的来源是IDE或文本编辑器。验证其设置并确保在没有BOM的情况下保存UTF-8文件。此类BOM不是强制性的,通常只会产生类似这样的问题。
<强>更新强>
你可以替换它:
var_dump($result);
......用这个:
var_dump(bin2hex($result));
...以获得更准确的JSON字符串内容视图。 UTF-8 BOM会将自己显示为:
efbbbf...