2013-08-07 2 views
0

У меня есть этот код:Curl в PHP не всегда следуют перенаправляет

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']"; 
     } 

URL, я пытаюсь свернуться всегда перенаправляет на другую страницу. Но иногда $ info ['url'] неподвижным является исходным url. Почему это? Когда я пытаюсь использовать $ i, который застревает вручную, он перенаправляет меня.

Код, используемый для работы, и я ничего не изменил, о чем я знаю. Большую часть времени он работает. Либо в случае 1 («если»), либо в случае 2 («else»). Любые идеи, почему это происходит? Я не мог найти ответа в Интернете. Может быть, это потому, что я действительно не знал, как поставить проблему в ключевые слова.

Когда я запускаю это на своем сервере, он работает, но мой компьютер имеет интернет-соединение в 100 Мбит/с, что делает его намного быстрее. Кроме того, я бы предпочел перегрузить мой компьютер, чем сервер.

Спасибо!

ОБНОВЛЕНИЕ: Проблема, похоже, прекратилась. Все гладко известно. Мне все равно хотелось бы услышать теории о том, почему это может произойти.

Спасибо!

ответ

0

Общий цикл переадресацией ловушкой является то, что ваш клиент должен управлять печенье:

Попробуйте добавить следующие параметры:

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

Ну печенье на самом деле предотвратить меня от попыток нескольких переменных в переменной GET. Когда я закрываю соединение cURL, он очищает файлы cookie в следующий раз, когда цикл запускается? –

+0

Нет, но вы можете использовать 'unlink (" cookies.txt ")' непосредственно перед 'curl_init()'. –

+0

Также помните, что он работал все время, и я нашел более старую версию файла, которая имеет такую ​​же проблему. Я считаю, что это имеет какое-то отношение к WAMP. –

Смежные вопросы