(PHP 5)
Curl_multi_exec — запустить подсоединение текущего дескриптора cURL
int cur_multi_exec (ресурс $mh, int &$still_running)
Обработайте каждый дескриптор в стеке. Этот метод можно вызвать, если дескриптору необходимо читать или записывать данные.
мх
Несколько дескрипторов cURL, возвращаемых функцией Curl_multi_init().
все еще работает
Ссылка на идентификатор, используемый для определения того, выполняется ли операция.
Код cURL, определенный в предопределенных константах cURL.
Примечание. Эта функция возвращает только ошибки, относящиеся ко всему пакетному стеку. Проблемы с отдельными передачами все равно могут возникнуть, даже если возвращается CURLM_OK.
В этом примере будут созданы 2 дескриптора cURL, добавлены их в пакетный обработчик и запущены параллельно.
<?php// Создайте пару ресурсов cURL $ch1 = cur_init();$ch2 = curl_init();// Установите URL-адрес и соответствующие параметры Curl_setopt($ch1, CURLOPT_URL, "http://lxr.php.net / ");curl_setopt($ch1, CURLOPT_HEADER, 0);curl_setopt($ch2, CURLOPT_URL, "http://www.php.net/");curl_setopt($ch2, CURLOPT_HEADER, 0);//Создаем пакетный дескриптор cURL $mh = Curl_multi_init();//Добавляем 2 дескриптора Curl_multi_add_handle($mh,$ ch1);curl_multi_add_handle($mh,$ch2);$active = null;//Выполнить пакетный дескриптор do { $mrc = cur_multi_exec($mh, $active);} while ($mrc == CURLM_CALL_MULTI_PERFORM); while ($active && $mrc == CURLM_OK) { if (curl_multi_select ($mh) != -1) { do { $mrc = cur_multi_exec($mh, $active } while); ($mrc == CURLM_CALL_MULTI_PERFORM }}//Закрываем все дескрипторы curl_multi_remove_handle($mh, $ch1);curl_multi_remove_handle($mh, $ch2);curl_multi_close($mh);?>