情况就是这样。
我们的客户端代码side_nav.php(在本地apache服务器中)
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,'http://ourserver.com/get_side_nav.php');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$output = curl_exec ($ch); // Executr
curl_close ($ch); // Close cURL handl
// i added this to remove invalid chars
for ($i = 0; $i <= 31; ++$i) {
$output = str_replace(chr($i), "", $output);
}
$output = str_replace(chr(127), "", $output);
if (0 === strpos(bin2hex($output), 'efbbbf')) {
$output = substr($output, 3);
}
$data = json_decode($output);
// outputs the json object.
echo var_dump($data);
if(json_last_error() != 0){
echo 'ERROR JSON CODE ' . json_last_error();
}
并且我们的get_side_nav.php(服务器)在调用时返回此json。
{"navs":[{"href":"index.php","class":"fa fa-dashboard","name":"Dashboard"},{"href":"inventory.php","class":"fa fa-dropbox","name":"Inventory"},{"href":"gr_list.php","class":"fa fa-money","name":"Goods Received"},{"href":"new_sales.php","class":"fa fa-money","name":"Sales"},{"href":"credit_sales.php","class":"fa fa-paste","name":"Credit Sales"}]}
问题是,由于某种原因,我无法使pc 2成功解码JSON,它返回JSON错误4,即JSON_ERROR_SYNTAX。两个PCS都运行完全相同的wampserver版本。然而,另一台PC解码它从我们的服务器获得的JSON并成功显示该对象。
答案 0 :(得分:0)
我在执行$data
之前对原始json_decode()
进行了一些比较,看看它们在这一点上是否已经有所不同。如果像代理服务器这样的东西阻止或改变来自一台PC而不是另一台PC的卷曲路径,那么可能是坏的PC&#34;正在获得一个HTML阻止页面的原始$data
。