downloads | documentation | faq | getting help | mailing lists | licenses | wiki | reporting bugs | php.net sites | links | conferences | my php.net

search for in the

curl_multi_init> <curl_multi_getcontent
[edit] Last updated: Fri, 25 May 2012

view this page in

curl_multi_info_read

(PHP 5)

curl_multi_info_readВозвращает информацию о текущих операциях

Описание

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_*. Если все 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_RETURNTRANSFER1);
    
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.

Смотрите также



add a note add a note User Contributed Notes curl_multi_info_read
Nick Smith 28-May-2010 01:41
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.

 
show source | credits | sitemap | contact | advertising | mirror sites