php中的json_decode问题

时间:2015-10-21 17:23:32

标签: json url decode

我使用json_decode函数从动态网址获取一些数据。 一些网址在解码功能中正常工作,其他网址则没有。

例如: 这很好用:

 $jsondata = file_get_contents("http://185.112.249.77:9999/Api/Search?search=&level=1&min=1&max=50&points=48000");
 $data = json_decode($jsondata, true);

但是当我将48000更改为45000时,解码不再起作用了。 41000再次正常工作。

也..当我在points-attribute之后添加一些其他属性...解码函数也不再起作用了。

例如:

$jsondata = file_get_contents("http://185.112.249.77:9999/Api/Search?search=&level=1&min=1&max=50&points=20000&loc=32000007");
$data = json_decode($jsondata, true);

当我删除&loc=32000007时,它再次有效。

当您在浏览器中直接使用网址时,所有网址都正常工作。 只有json_decode函数不能与其中一些函数一起使用。

您可以在json_decode函数中使用的字符有任何限制吗?有没有办法解决这个问题?

非常感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

确定。我设法解决了这个问题。 这是一个简单的解决方案,可以根据要求进行调整。 数组中列出的所有字符都将替换为字符"?"

 $jsondata = file_get_contents($url);
 $tobecleaned = array("®");
 $jsondatacleaned = str_replace($tobecleaned, "?", $jsondata);
 $data = json_decode($jsondatacleaned, true);