CURL强制下载gz格式的网页

时间:2012-03-03 08:39:42

标签: php curl

我在浏览器中运行了一些PHP代码。

如果我导航到像google.com这样的网址,它会告诉我该文档已移至此处。 。即到另一个谷歌链接。

我将cURL跟随位置设置为true。

另外。当查询实际执行时,它会强制我的浏览器下载 .gz 文件中的网页。

请帮忙。我不想下载它。我想要它显示。

curl_setopt($ch, CURLOPT_URL, trim("http://".trim($host).$q)); 
curl_setopt($ch, CURLOPT_PORT, intval(trim($port)));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, false); 
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, $v);

编辑::

您的浏览器在请求stackoverflow.com等网站时发送了错误的请求。 。甚至4shared.com做同样的事情。

以下是我在HTTPHEADER中使用的cURL数组;

Array
(
    [0] => Proxy-Connection: Close

    [1] => Cache-Control: max-age=0

    [2] => User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1017.2 Safari/535.19

    [3] => Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8

    [4] => Accept-Encoding: gzip,deflate,sdch

    [5] => Accept-Language: en-US,en;q=0.8

    [6] => Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3

    [7] => Cookie: __qca=P0-9

    [8] => Connection: Close
)

这与我上面使用的卷曲代码相同。

    Host: stackoverflow.com                                 
    Q: /questions/tagged/java

1 个答案:

答案 0 :(得分:2)

解决gzip问题:在设置CURLOPT_HTTPHEADER之前,尝试将CURLOPT_ENCODING设置为空字符串。问题是cURL不期望压缩响应(因为你没有设置它应该接受的编码),但是无论如何都要使用自定义HTTP头手动请求压缩响应。