使用json_decode时JSON_ERROR_CTRL_CHAR,没有一个经典的解决方案可行

时间:2016-12-27 18:35:58

标签: php json decode

我一直试图解决这个问题已经整整一天了,无法让它发挥作用。这应该是容易的东西。

问题是,我对此网址发出了GET请求:http://api.champion.gg/stats?api_key=851a15d4f271849f3beee664ea03db3b

然后,我尝试使用PHP函数json_decode将结果转换为JSON格式。我是这样做的:

$httpResponse = drupal_http_request('http://api.champion.gg/stats?api_key=851a15d4f271849f3beee664ea03db3b');
$data = $httpResponse->data;
$datas = json_decode($data);
var_export($datas);
$error = json_last_error_msg();
echo "Error = $error";

错误消息返回"控制字符错误,可能编码错误"

我已经尝试过使用stripslashes,删除BOM,html_entities,删除一些初始字符,但没有一个有效。

1 个答案:

答案 0 :(得分:1)

您必须将“Accept-Encoding”标头设置为“gzip,deflate”,否则会截断响应。

$httpResponse = drupal_http_request('http://api.champion.gg/stats?api_key=851a15d4f271849f3beee664ea03db3b', array('Accept-Encoding' => 'gzip, deflater'));
$data = gzdecode($httpResponse->data);