我正在使用curl从许多网站获取数据。有时他们会发回gzip。如何检测响应是否是gzip?
答案 0 :(得分:5)
BTW,如果你设置:
CURLOPT_ENCODING => '',
CURL会自动为您解码数据。
答案 1 :(得分:3)
curl_setopt($curl, CURLOPT_HEADER, true);
curl_exec
的结果将包含HTTP响应中的标头,您可以解析它以查看是否已对其进行了压缩。
gzipped响应就像这样:
HTTP/1.1 200 OK
Server: Apache
Content-Type: text/html
Content-Encoding: gzip
Content-Length: 26395
[GZIP COMPRESSED DATA]
因此,您可以先将响应分解为标题和内容,然后解析标题以查看它是否说明了gzip编码内容。