PHP中的cURL并不总是遵循重定向

时间:2013-08-07 19:33:27

标签: php curl brute-force

我有这段代码:

for($i = $start; $i <= $end ; $i++)
    {
        $url = "http://xxx.co.il/yyy?zzz=$i";
        $ch = curl_init();
        curl_setopt ($ch, CURLOPT_URL, $url);
        curl_setopt ($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; he-IL; rv:1.8.1.6) Gecko/20070725 Firefox/2.0.0.6");
        curl_setopt ($ch, CURLOPT_REFERER, $url);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE);
        $result = curl_exec($ch);
        $info = curl_getinfo($ch);
        curl_close($ch);

        if($info['url'] == "http://www.xxx.co.il/abc")
        {
                echo "<br />%^$i^%<br />";   
        }
        else
        {
                echo "$info['url']";
        }

我正在尝试cURL的网址总是重定向到另一个页面。但是,有时$ info ['url']剧照仍然是原始网址。这是为什么?当我尝试手动卡住的$ i时它会重定向我。

用于工作的代码,我没有改变我所知道的任何东西。 大部分时间都有效。案例1('if')或案例2('else')。 任何想法为什么会这样? 我在网上找不到任何答案。也许是因为我真的不知道如何把问题放到关键词中。

当我在我的服务器上运行它时,它可以工作,但我的计算机有一个100mbps的互联网连接,这使它更快。另外,我宁愿让计算机超载服务器。

谢谢!

更新:问题似乎已经停止。一切顺利都知道。我仍然希望听到关于为什么会发生这种情况的理论。

谢谢!

1 个答案:

答案 0 :(得分:0)

常见的循环重定向缺陷是您的客户需要管理cookie:

尝试添加以下选项:

curl_setopt($ch, CURLOPT_COOKIEFILE, "cookies.txt");
curl_setopt($ch, CURLOPT_COOKIEJAR, "cookies.txt");