我有这个代码:
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']仍然是原始url。为什么?当我尝试手动卡住的$I时,它确实重定向了我。
代码过去是有效的,我没有更改任何我知道的内容。大多数时候它是有效的。要么用事例1("if"),要么用事例2("else")。你知道为什么会这样吗?我在网上找不到任何答案。也许是因为我真的不知道如何把这个问题放进关键词里。
当我在服务器上运行这个程序时,它可以工作,但我的电脑有一个100mbps的互联网连接,这让它更快。另外,我宁愿让我的电脑超载,也不愿让服务器超载。
谢谢!
更新:问题似乎已经停止。一切都很顺利。我仍然希望听到关于为什么会发生这种情况的理论。
谢谢!
一个常见的循环重定向陷阱是您的客户端需要管理cookie:
尝试添加以下选项:
curl_setopt($ch, CURLOPT_COOKIEFILE, "cookies.txt");
curl_setopt($ch, CURLOPT_COOKIEJAR, "cookies.txt");