我正在通过curl检索gzip压缩的网页,但是当我将检索到的内容输出到浏览器时,我只是得到了原始的gzip压缩数据。如何在PHP中解码数据?
我发现的一种方法是将内容写入tmp文件,然后...
$f = gzopen($filename,"r");
$content = gzread($filename,250000);
gzclose($f);
....但是,人,一定有更好的方法。
编辑:这不是文件,而是Web服务器返回的gzip压缩html页面。
我使用curl和:
curl_setopt($ch,CURLOPT_ENCODING , "gzip");
只是要注意,此选项
Accept-Encoding: gzip
在请求上设置标头,并在响应被压缩(可能不是压缩)时解压缩响应,因此确实是您需要做的所有事情。CURL的完美解决方案。
设置它
'gzip'
会一直送Accept-Encoding: gzip
,甚至当你的PHP版本不支持gzip的解码(你会得到压缩数据即可)。如果将其设置为''
(空字符串),curl将自动声明并解码它支持的所有编码。