如何从PHP中的API中读取响应?响应为GZIP版本。我发现例如以下建议:
$url = "http://api.codingdict.com/1.1/questions/" . $question_id; $data = file_get_contents($url); $data = http_inflate($data);
但是该功能http_inflate()在我正在使用的安装上不可用。
http_inflate()
还有其他简单的方法可以实现它吗?
一种很酷的方法 http://www.php.net/manual/zh/wrappers.compression.php
注意使用流包装 compress.zlib
$url = "compress.zlib://http://api.codingdict.com/1.1/questions/" . $question_id; echo $data = file_get_contents($url, false, stream_context_create(array('http'=>array('header'=>"Accept-Encoding: gzip\r\n"))));
或使用卷曲
$ch = curl_init(); curl_setopt_array($ch, array( CURLOPT_URL => $url , CURLOPT_HEADER => 0 , CURLOPT_RETURNTRANSFER => 1 , CURLOPT_ENCODING => 'gzip' )); echo curl_exec($ch);
编辑-其他方法已删除,因为它们不发送Accept-Encodinghttp标头。
Accept-Encoding