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

Tutoriel PHP de base

Tutoriel PHP avancé

PHP & MySQL

Manuel de référence PHP

Utilisation et exemple de la fonction PHP curl_multi_info_read()

PHP CURL参考手册

(PHP 5)

curl_multi_info_read — Obtient les informations de transmission associées à l'analyse actuelle de CURL

Syntaxe

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

Vérifiez si le gestionnaire de traitement par lots contient des messages ou des informations dans le fil de transmission distinct. Les messages peuvent contenir des codes d'erreur retournés par le fil de transmission distinct ou des rapports indiquant si le fil de transmission est terminé.

La répétition de l'appel de cette fonction retourne un nouveau résultat à chaque fois, jusqu'à ce qu'il n'y ait plus d'informations à retourner, FALSE est retourné comme un signal. Le nombre d'informations restantes après l'appel de cette fonction est indiqué par l'entier retourné par msgs_in_queue.

Attention :Les données pointées par les ressources retournées après l'appel de curl_multi_remove_handle() ne seront plus existantes.

paramètres

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://fr.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参考手册