Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Curl Multi

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: Curl Multi тоже самое что и Curl
incker
Отправлено: 17 Июня, 2012 - 19:25:11
Post Id


Новичок


Покинул форум
Сообщений всего: 49
Дата рег-ции: Февр. 2012  


Помог: 0 раз(а)




Здравствуйте,

пользуюсь Curl Multi, но почему-то он скачивает не быстрее чем обычный курл, а даже наоборот меделннее((

ктонибудь знает почему так??



добавляю ссылку одну и ту же, куки, только POST разный, может если ссылка одна и та же то скачивает по очереди?

еще слышал что апач может ограничивать количество паралельных соединений, если да, то как это узнать?
Заранее большое спасибо!!)




Вычитал в интернете вот что:

Как я уже говорил Выше, согласно спецификации HTTP/1.1 на браузеры накладываются ограничения на количество одновременно загружаемых компонентов сайта, а именно не более 2-х компонентов с одного хоста. Поэтому если на Вашем сайте много графики, то ее лучше вынести на отдельный поддомен или поддомены. Для Вас это будет один и тот же сервер, а для браузера – разные. Чем больше поддоменов Вы создадите, тем больше файлов браузер сможет одновременно загрузить и тем быстрее загрузится вся страница сайта. Вам остается лишь изменить адрес картинок на новый. Очень простой, но действенный способ.


Относиться ли это к моей ситуации??

(Отредактировано автором: 17 Июня, 2012 - 19:34:23)

 
 Top
Мелкий Супермодератор
Отправлено: 17 Июня, 2012 - 19:35:55
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




Покажите, как пробуете. Может, в один поток и делаете.


-----
PostgreSQL DBA
 
 Top
incker
Отправлено: 17 Июня, 2012 - 19:46:01
Post Id


Новичок


Покинул форум
Сообщений всего: 49
Дата рег-ции: Февр. 2012  


Помог: 0 раз(а)




Взял код с какого-то официального сайта

PHP:
скопировать код в буфер обмена
  1. $ch1 = curl_init();
  2. $ch2 = curl_init();
  3.  
  4. // устанавливаем URL и другие соответствующие опции
  5. curl_setopt($ch1, CURLOPT_URL, "http://vk.com/");
  6. curl_setopt($ch1, CURLOPT_HEADER, 0);
  7. curl_setopt($ch1, CURLOPT_RETURNTRANSFER, 1);
  8. curl_setopt($ch2, CURLOPT_URL, "http://www.php.su/");
  9. curl_setopt($ch2, CURLOPT_HEADER, 0);
  10. curl_setopt($ch2, CURLOPT_RETURNTRANSFER, 1);
  11.  
  12. //создаем набор дескрипторов cURL
  13.  
  14. //добавляем два дескриптора
  15.  
  16. $active = null;
  17. //запускаем дескрипторы
  18. do {
  19.     $mrc = curl_multi_exec($mh, $active);
  20. } while ($mrc == CURLM_CALL_MULTI_PERFORM);
  21.  
  22. while ($active && $mrc == CURLM_OK) {
  23.     if (curl_multi_select($mh) != -1) {
  24.         do {
  25.             $mrc = curl_multi_exec($mh, $active);
  26.         } while ($mrc == CURLM_CALL_MULTI_PERFORM);
  27.     }
  28. }
  29.  
  30.  
  31. $one = curl_exec($ch1);
  32. $two = curl_exec($ch2);
  33.  
  34. //закрываем дескрипторы






может быть я действительно делаю в один поток!!))
Но всеравно проблема есть...

это я же дописал 2 функции которые есть для обычного курла))

по тому что не знал как результат вытащить.

я не знаю как вытащить переменные из

по тому что print ($mrc); выводит 0

(Отредактировано автором: 17 Июня, 2012 - 20:09:32)

 
 Top
Мелкий Супермодератор
Отправлено: 17 Июня, 2012 - 20:28:32
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




Так и подумал.
Вы 4 запроса делаете. Сперва 2 параллельно через мультикурл, потом ещё 2 последовательно через curl_exec.

CODE (htmlphp):
скопировать код в буфер обмена
  1. http://ru2.php.net/manual/en/function.curl-multi-init.php#105252

Милая функция, отражающая всю суть.


-----
PostgreSQL DBA
 
 Top
incker
Отправлено: 17 Июня, 2012 - 20:46:36
Post Id


Новичок


Покинул форум
Сообщений всего: 49
Дата рег-ции: Февр. 2012  


Помог: 0 раз(а)




Мелкий пишет:
Так и подумал.
Вы 4 запроса делаете. Сперва 2 параллельно через мультикурл, потом ещё 2 последовательно через curl_exec.


спасибо большое))) да, сам уже разобрался)))

в итоге решение
заменил curl_exec НА curl_multi_getcontent и все грузиться куда быстрее)))

сижу радуююююсь!)))))
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Работа с сетью »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB