0

我有这个代码:

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 的 url 总是重定向到另一个页面。但是,有时 $info['url'] Stills 是原始 url。这是为什么?当我尝试手动卡住的 $i 时,它会重定向我。

该代码曾经可以工作,并且我没有更改任何我知道的内容。大多数时候它都有效。无论是案例 1(“if”)还是案例 2(“else”)。任何想法为什么会发生这种情况?我在网上找不到任何答案。也许是因为我真的不知道如何将问题放入关键字中。

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

谢谢!

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

谢谢!

4

1 回答 1

0

一个常见的循环重定向陷阱是您的客户端需要管理 cookie:

尝试添加以下选项:

curl_setopt($ch, CURLOPT_COOKIEFILE, "cookies.txt");
curl_setopt($ch, CURLOPT_COOKIEJAR, "cookies.txt");
于 2013-08-07T19:41:24.027 回答