English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

PHP Основной Учебник

PHP Уровеньный Учебник

PHP & MySQL

PHP Референс Мануал

Пример использования и руководство по функции PHP curl_multi_exec()

PHP CURL справочник

(PHP 5)

curl_multi_exec — запуск текущих подсоединений CURL хендлов

Описание

int curl_multi_exec ( resource $mh , int &$still_running )

Обработка каждого хендла в стеке. Метод можно вызвать для чтения или записи данных.

параметр

mh

CURL множественные хендлы, возвращенные curl_multi_init().

still_running

Ссылка на идентификатор, используемый для определения того, выполняется ли операция.

Возвратное значение

CURL код, определенный в CURL предопределенных константах.

Внимание:Эта функция возвращает ошибки, связанные с целым пакетом. Даже если возвращается CURLM_OK, у одного из передатчиков может быть проблема.

Онлайн пример

Этот пример создаст 2 CURL хендла, добавит их в пакетный хендл и запустит их параллельно.

<?php
// создание пары CURL ресурсов
$ch1 = curl_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 = curl_multi_exec($mh, $active);
} while ($mrc == CURLM_CALL_MULTI_PERFORM);
while ($active && $mrc == CURLM_OK) {
    if (curl_multi_select($mh) != -1) {
        do {
            $mrc = curl_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);
?>

PHP CURL справочник