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

Форум PHP

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

 

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

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: проблема работы cURL в цикле

Сообщения:  [1-1] 

 
 автор: 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 с.
Подскажите, что там не так?

  Ответить  

Сообщения:  [1-1] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

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