curl_multi_info_read
(PHP 5, PHP 7)
curl_multi_info_read — Возвращает информацию о текущих операциях
Описание
$mh
[, int &$msgs_in_queue
= NULL
] )Опрашивает набор дескрипторов о наличии сообщений или информации от индивидуальных передач. Сообщения могут включать такую информацию как код ошибки передачи или прост факт завершения передачи.
Повторяющиеся вызовы этой функции будут каждый раз возвращать
новый результат, пока не будет возвращено FALSE
в качестве
сигнала окончания сообщений. Целое число, содержащееся в
msgs_in_queue
, указывает количество оставшихся
сообщений после вызова данной функции.
Данные, на которые указывает возвращаемый ресурс, будут затерты вызовом curl_multi_remove_handle().
Список параметров
-
mh
-
Мульти-дескриптор cURL, полученный из curl_multi_init().
-
msgs_in_queue
-
Количество оставшихся сообщений в очереди
Возвращаемые значения
В случае успеха, возвращает ассоциативный массив сообщений, или FALSE
в случае
неудачи.
Ключ: | Значение: |
---|---|
msg | Константа CURLMSG_DONE . Остальные возвращаемые
значения пока недоступны. |
result | Одна из констант CURLE_* . Если все
OK, результатом будет константа CURLE_OK . |
handle | Ресурс типа curl, указывающий на дескриптор, к которому он относится. |
Примеры
Пример #1 Пример использования curl_multi_info_read()
<?php
$urls = array(
"http://www.cnn.com/",
"http://www.bbc.co.uk/",
"http://www.yahoo.com/"
);
$mh = curl_multi_init();
foreach ($urls as $i => $url) {
$conn[$i] = curl_init($url);
curl_setopt($conn[$i], CURLOPT_RETURNTRANSFER, 1);
curl_multi_add_handle($mh, $conn[$i]);
}
do {
$status = curl_multi_exec($mh, $active);
$info = curl_multi_info_read($mh);
if (false !== $info) {
var_dump($info);
}
} while ($status === CURLM_CALL_MULTI_PERFORM || $active);
foreach ($urls as $i => $url) {
$res[$i] = curl_multi_getcontent($conn[$i]);
curl_close($conn[$i]);
}
var_dump(curl_multi_info_read($mh));
?>
Результатом выполнения данного примера будет что-то подобное:
array(3) { ["msg"]=> int(1) ["result"]=> int(0) ["handle"]=> resource(5) of type (curl) } array(3) { ["msg"]=> int(1) ["result"]=> int(0) ["handle"]=> resource(7) of type (curl) } array(3) { ["msg"]=> int(1) ["result"]=> int(0) ["handle"]=> resource(6) of type (curl) } bool(false)
Список изменений
Версия | Описание |
---|---|
5.2.0 |
Добавлен параметр msgs_in_queue .
|
- PHP Руководство
- Функции по категориям
- Индекс функций
- Справочник функций
- Другие службы
- Клиентская библиотека работы с URL
- curl_close
- curl_copy_handle
- curl_errno
- curl_error
- curl_escape
- curl_exec
- curl_file_create
- curl_getinfo
- curl_init
- curl_multi_add_handle
- curl_multi_close
- curl_multi_exec
- curl_multi_getcontent
- curl_multi_info_read
- curl_multi_init
- curl_multi_remove_handle
- curl_multi_select
- curl_multi_setopt
- curl_multi_strerror
- curl_pause
- curl_reset
- curl_setopt_array
- curl_setopt
- curl_share_close
- curl_share_init
- curl_share_setopt
- curl_strerror
- curl_unescape
- curl_version
Коментарии
Just to let others who might be struggling to get it to work, curl_multi_info_read() doesn't work in PHP versions before 5.2.0, and instead returns NULL immediately.