English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
(PHP 5)
curl_multi_info_read — получение текущих传输ных данных связанных с CURL
array curl_multi_info_read ( resource $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_* Одна из констант. Если все операции прошли успешно, будет возвращено:CURLE_OK Константа. |
handle | Тип ресурса CURL указывает на соответствующий хендлер. |
<?php $urls = array( "http://www.baidu.com/" "http://www.google.com.hk/", "http://ru.oldtoolbag.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) типа (curl) } array(3) { ["msg"]=> int(1) ["result"]=> int(0) ["handle"]=> resource(7) типа (curl) } array(3) { ["msg"]=> int(1) ["result"]=> int(0) ["handle"]=> resource(6) типа (curl) } bool(false)
Версия | Описание |
---|---|
5.2.0 | msgs_in_queue был добавлен. |