Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: проблема работы cURL в цикле
 
 автор: scorpius   (22.04.2009 в 13:33)   письмо автору
 
 

Такой код:

$post_conn=get_post_auth();//данные для авторизации
$ch=curl_init($check);   
nj_connect();// авторизация
for ($i=0;$i<$count;$i++)
{
   curl_setopt ($ch, CURLOPT_URL, $url);// переход по страницам
   $check_url=curl_exec($ch);
   preg_match_all("#abc#Ui",$check_url,$vor);// парсинг странички на наличие определенных значений 
   //на всех страничках данные одинаковые, т.е. подставлятся в $post должно одно и тоже
   $in=$check_url;// необходимо для func()
   $post=func();
   curl_setopt($ch, CURLOPT_POST, 1);
   curl_setopt($ch,CURLOPT_POSTFIELDS, $post);// отправка POST-запроса
   $check_url=curl_exec($ch);
}
curl_close($ch);

работает как-то странно. А именно:
1 обход цикла проходит как надо
2 обход - парсит страничку и находит данные, которые отправлялись в первом обходе цикла. соответственно отправляет неправильный POST-запрос
3 обход - парсит страничку и находит данные, которые отправлялись в втором обходе цикла и т.д.
Переписал код и получилось:

for ($i=0;$i<$count;$i++)
{
  $post_conn=get_post_auth();
  $ch=curl_init($check);   
  nj_connect();
  curl_setopt ($ch, CURLOPT_URL, $url);
  $check_url=curl_exec($ch);
  preg_match_all("#abc#Ui",$check_url,$vor);
  $in=$check_url;
  $post=func();
  curl_setopt($ch, CURLOPT_POST, 1);
  curl_setopt($ch,CURLOPT_POSTFIELDS, $post);// отправка POST-запроса
  $check_url=curl_exec($ch);
  curl_close($ch);
}

Все работает как надо, но на каждый обход цикла уходит 2 с. Первый вариант намного быстрее работает. На все уходит в среднем 5 с.
Подскажите, что там не так?

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования