我使用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
函数中使用的字符有任何限制吗?有没有办法解决这个问题?
非常感谢您的帮助。
答案 0 :(得分:0)
确定。我设法解决了这个问题。 这是一个简单的解决方案,可以根据要求进行调整。 数组中列出的所有字符都将替换为字符"?"
$jsondata = file_get_contents($url);
$tobecleaned = array("®");
$jsondatacleaned = str_replace($tobecleaned, "?", $jsondata);
$data = json_decode($jsondatacleaned, true);