即使设置了标志,PHP cURL也不会遵循重定向

时间:2015-01-09 17:52:03

标签: php

尽管我设置了curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true) cURL并不想关注重定向,但它只会显示" 301已移动的页面"。尝试了多个网站。 奇怪的是它适用于localhost,但是当我将它上传到我的网站空间然后拒绝工作。

我的网络托管服务提供商是否有可能进行一些调整,但它无法正常工作?从未见过这样的事情:(

以下是代码:

    $ch=curl_init();
    curl_setopt($ch, CURLOPT_URL, 'http://google.com');
    curl_setopt($ch, CURLOPT_HEADER, 0);
    curl_setopt($ch, CURLOPT_ENCODING, '');
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10);
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36');
    curl_setopt($ch, CURLOPT_HTTPHEADER, array(
        'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
        'Accept-Language: en-US,en;q=0.5',
        'Accept-Encoding: gzip, deflate',
        'Connection: keep-alive'
        ));
    $result = curl_exec($ch);
    curl_close($ch);

1 个答案:

答案 0 :(得分:0)

我遇到了类似的问题,原因是cURL在收到重定向标头后立即执行了GET。为了解决这个问题,我指定了CURLOPT_CUSTOMREQUEST

示例:

curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");