我正在尝试从http://api.stackoverflow.com/1.1/search?tagged=php获取数据。
我正在使用此代码从API获取数据:
$url = "http://api.stackoverflow.com/1.1/search?tagged=php";
$json = file_get_contents($url);
$json_data = json_decode($json, true);
print_r($json);
但它没有告诉我什么。我也使用curl来获取数据,但它也没有显示任何内容。为什么不向我展示任何东西,我该如何解决这个问题?
答案 0 :(得分:3)
他们正在回复你gzipped内容作为回应。这就是为什么它不适用于你的json解码。这是等效的卷曲请求。
$url= "http://api.stackoverflow.com/1.1/search?tagged=php";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch, CURLOPT_ENCODING, ""); // this will handle gzip content
$result = curl_exec($ch);
curl_close($ch);
print $result;
// do json processing here
答案 1 :(得分:1)
响应是gzip压缩,请使用gzdecode
:
$url = "http://api.stackoverflow.com/1.1/search?tagged=php";
$json = file_get_contents($url);
$json_data = json_decode(gzdecode($json), true);
print_r($json);