【发布时间】:2010-11-25 23:57:23
【问题描述】:
我正在使用 curl 从许多网站获取数据。有时他们会发回 gzip。如何检测响应是否为 gzip?
【问题讨论】:
-
您需要响应中的内容类型标头。它应该对你有帮助。 satya-weblog.com/2010/07/…
我正在使用 curl 从许多网站获取数据。有时他们会发回 gzip。如何检测响应是否为 gzip?
【问题讨论】:
顺便说一句,如果你设置:
CURLOPT_ENCODING => '',
CURL 会自动为您解码数据。
【讨论】:
curl_setopt($curl, CURLOPT_HEADER, true);
curl_exec 的结果还将包含来自 HTTP 响应的标头,您可以对其进行解析以查看它是否已压缩。
压缩后的响应是这样的:
HTTP/1.1 200 OK
Server: Apache
Content-Type: text/html
Content-Encoding: gzip
Content-Length: 26395
[GZIP COMPRESSED DATA]
因此,您可以先将响应分解为标头和内容,然后解析标头以查看它是否说明了有关 gzip 编码内容的任何内容。
【讨论】: