使用 cURL 检索 gzip 压缩的网页时,可能会输出原始数据而不是解码内容。可以使用以下方法解决此问题:
cURL 的“自动编码”模式允许服务器确定支持的编码方法并自动解压缩响应。要激活此模式,请使用以下命令:
<code class="php">curl_setopt($ch, CURLOPT_ENCODING, '');</code>
通过将 CURLOPT_ENCODING 选项设置为空字符串,cURL 将使用“自动”模式。
或者,您可以通过将 CURLOPT_ENCODING 选项设置为 'gzip' 来强制请求使用 GZIP 压缩:
<code class="php">curl_setopt($ch, CURLOPT_ENCODING, 'gzip');</code>
这将明确从服务器请求 GZIP 压缩。
如果需要手动解压检索到的数据,可以使用 gzdecode() 函数:
<code class="php">$decompressedContent = gzdecode($gzippedContent);</code>
该函数解码 GZIP 压缩的数据并返回未压缩的内容。
为确保可靠解压,建议在执行curl请求之前禁用PHP的输出缓冲。这可以防止对 cURL 处理响应的任何干扰。
<code class="php">ob_end_clean();</code>
以上是如何在 PHP 中解压缩通过 cURL 检索的 Gzip 网页?的详细内容。更多信息请关注PHP中文网其他相关文章!