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

Tutorial básico PHP

Tutorial avançado PHP

PHP & MySQL

Manual de referência PHP

Uso e exemplo da função PHP curl_multi_info_read()

PHP CURL参考手册

(PHP 5)

curl_multi_info_read — Obtém informações de transmissão relacionadas ao CURL atualmente analisado

Sintaxe

array curl_multi_info_read ( resource $mh [, int &$msgs_in_queue = NULL ] )

Verificar se há mensagens ou informações retornadas no thread de transmissão separado. As mensagens podem conter, por exemplo, códigos de erro retornados pelo thread de transmissão separado ou relatórios de se o thread de transmissão foi concluído.

A chamada repetida deste função retornará um novo resultado a cada vez, até que não haja mais informações a serem retornadas, quando FALSE será retornado como um sinal. O inteiro retornado por msgs_in_queue indica o número de mensagens que ainda serão contabilizadas após esta função ser chamada.

Atenção:Os dados apontados pelo recurso retornado após a chamada curl_multi_remove_handle() não existirão.

parâmetros

mh

由 curl_multi_init() 返回的 CURL 多个句柄。

msgs_in_queue

仍在队列中的消息数量。

返回值

成功时返回相关信息的数组,失败时返回FALSE。

返回值内容(返回数组的内容) :

msgCURLMSG_DONE常量。其他返回值当前不可用。
resultCURLE_*常量之一。如果一切操作没有问题,将会返回CURLE_OK常量。
handleCURL资源类型表明它有关的句柄。

在线示例

<?php
$urls = array(
   "http://www.baidu.com/",
   "http://www.google.com.hk/",
   "http://pt.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) 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.0msgs_in_queue被加入。

PHP CURL参考手册