Модераторы: Aliance, skyboy, MoLeX, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> curl_milti, несколько запросов в одной курл сессии 
:(
    Опции темы
lancelot555
Дата 27.4.2007, 13:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 171
Регистрация: 19.2.2005

Репутация: нет
Всего: нет



есть скрипт использующий функции curl_multi
Код

    $mh = curl_multi_init();
    foreach ($us as $i => $url) {
        $conn[$i]=curl_init($url);
        curl_setopt($conn[$i], CURLOPT_URL, $url);
        curl_setopt($conn[$i], CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($conn[$i], CURLOPT_HEADER, 1);
        curl_setopt($conn[$i], CURLOPT_FOLLOWLOCATION, 1);
        curl_setopt($conn[$i], CURLOPT_TIMEOUT, 20);
        curl_multi_add_handle ($mh,$conn[$i]);
    }

    do { $n=curl_multi_exec($mh,$active); } while ($active);

    foreach ($us as $i => $url) {
        $res[$i]=curl_multi_getcontent($conn[$i]);
        $result = $res[$i];
# что то делаем с контентом
        }
        curl_multi_remove_handle($mh,$conn[$i]);
        curl_close($conn[$i]);
    }
    curl_multi_close($mh);

если нужно сделать только один запрос в сессии все рабоет нормально, но как сделать так чтобы можно было делать несколько запросов в одной курл сессии? от есть установили курл опции, сделал exec, затем поменяли опции сделали еще один exec и так несколько раз.. Как это реализовать?  smile 
В этом скрипте после строчки # что то делаем с контентом нужно менять курл опции и делать запрос на другой урл но не закрывая курлсессию
как это грамотно сделать??? help plz
--------------------
Hи что так не поpтит цель, как попадание! =)
PM MAIL   Вверх
WolfON
Дата 27.4.2007, 13:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 604
Регистрация: 19.7.2004

Репутация: нет
Всего: 8



точно также, как вы настраиваете опции для всего остального
Код

...
curl_setopt($conn[$i], CURLOPT_URL, $url);
...


Вызов этой функции просто устанавливает параметр

PM MAIL ICQ   Вверх
lancelot555
Дата 27.4.2007, 14:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 171
Регистрация: 19.2.2005

Репутация: нет
Всего: нет



но нужно же потом делать exec !
делал вот так
curl_setopt($conn[$i], CURLOPT_URL, $urlc);
curl_setopt($conn[$i], CURLOPT_HEADER, 0);
curl_multi_add_handle ($mh,$conn[$i]);
do { $n=curl_multi_exec($mh,$active); } while ($active);
$res[$i]=curl_multi_getcontent($conn[$i]);
$result = $res[$i];

работает, но это неправильно, сначала к примеру пройдет 10 потоков, потом в этом коде они выполняться еще раз
в общем у кого есть опыт в этом поделитесь плз  smile 
--------------------
Hи что так не поpтит цель, как попадание! =)
PM MAIL   Вверх
cia
Дата 27.4.2007, 14:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 207
Регистрация: 15.1.2007

Репутация: нет
Всего: 4



Ничего не понял.
Что мешает сделать так:
Код

 curl_setopt($conn[$i], CURLOPT_URL, $url1);
 curl_exec($conn[$i]);
 curl_setopt($conn[$i], CURLOPT_URL, $url2);
 curl_exec($conn[$i]);

PM WWW ICQ   Вверх
lancelot555
Дата 27.4.2007, 14:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 171
Регистрация: 19.2.2005

Репутация: нет
Всего: нет



Цитата(cia @ 27.4.2007,  14:53)
Ничего не понял.
Что мешает сделать так:
Код

 curl_setopt($conn[$i], CURLOPT_URL, $url1);
 curl_exec($conn[$i]);
 curl_setopt($conn[$i], CURLOPT_URL, $url2);
 curl_exec($conn[$i]);

а будет ли это многопоточно??
--------------------
Hи что так не поpтит цель, как попадание! =)
PM MAIL   Вверх
WolfON
Дата 27.4.2007, 17:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 604
Регистрация: 19.7.2004

Репутация: нет
Всего: 8



нет
ты хочешь, чтобы после завершения сразу создавались новые потоки?
по-моему курл-мульти не позволяет добавлять новые потоки в очередь

можно реализовать на уровне параллельного запуска нескольких скриптов

Добавлено через 3 минуты и 7 секунд
Вот:
http://ru2.php.net/manual/en/function.curl...-add-handle.php

Попробуй скомпилировать последнюю версию пхп из цсв - последней сборки. Или на свой страх и риск разбирайся с этой функцией

PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Сеть | Следующая тема »


 




[ Время генерации скрипта: 0.0444 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.