Php 解析JSON时的空结果
这是我讨厌问的问题,因为我知道答案肯定非常简单,但我似乎想不出来 我试图解析来自Php 解析JSON时的空结果,php,json,stackexchange-api,Php,Json,Stackexchange Api,这是我讨厌问的问题,因为我知道答案肯定非常简单,但我似乎想不出来 我试图解析来自堆栈交换API的JSON响应,但结果是一个空字符串,尽管我检查了URL、JSON格式以及所有内容似乎都是有效的 我使用的代码很简单: $surl = file_get_contents("https://api.stackexchange.com/2.2/search?order=desc&sort=relevance&intitle=books&site=stackoverflow");
堆栈交换API的JSON响应,但结果是一个空字符串,尽管我检查了URL、JSON格式以及所有内容似乎都是有效的
我使用的代码很简单:
$surl = file_get_contents("https://api.stackexchange.com/2.2/search?order=desc&sort=relevance&intitle=books&site=stackoverflow");
$json1 = json_decode($surl,true);
print_r($json1);
当我尝试在json\u解码之前echo
回显$surl
的内容时,我得到了一个充满�代码>字符
任何方向正确的提示都将受到欢迎。API调用返回的字符串已被压缩
此外,所有API响应都被压缩。始终设置内容编码头,但某些代理将删除此项。在这里可以找到解码API响应的正确方法
您需要先使用解压缩字符串,然后才能在尝试时正确地json\u decode()
$surl = file_get_contents("https://api.stackexchange.com/2.2/search?order=desc&sort=relevance&intitle=books&site=stackoverflow");
// Decode the compressed string
$surl = gzdecode($surl);
// Then you'll be able to json_decode() it...
$json1 = json_decode($surl, true);
print_r($json1);
// Prints:
Array
(
[items] => Array
(
[0] => Array
(
[tags] => Array
(
[0] => research
)
[owner] => Array
(
[reputation] => 9995
[user_id] => 1944
[user_type] => registered
[accept_rate] => 93
[profile_image] => https://www.gravatar.com/avatar/93fc84c261cdce2e2f1d64c8e531ecb7?s=128&d=identicon&r=PG
[display_name] => Charles Roper
谢谢!完全错过了。非常感谢,迈克尔