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

PHP Grundanleitung

PHP Fortgeschrittene Anleitung

PHP & MySQL

PHP Referenzhandbuch

Verwendung und Beispiel der PHP-Funktion curl_multi_info_read()

PHP CURL参考手册

(PHP 5)

curl_multi_info_read — Informationen über aktuelle CURL-Transfers abrufen

Syntax

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

Überprüfen Sie, ob es in einem separaten Übertragungsthread Nachrichten oder Informationen gibt. Nachrichten können Fehlercodes enthalten, die von einem separaten Übertragungsthread zurückgegeben werden, oder Berichte darüber, ob der Übertragungsthread abgeschlossen ist.

Wiederholte Aufrufe dieser Funktion führen zu neuen Ergebnissen bei jedem Aufruf, bis keine weiteren Informationen zurückgegeben werden. FALSE wird als Signal zurückgegeben. Die durch msgs_in_queue zurückgegebenen Integer geben an, wie viele Nachrichten noch verbleiben, wenn diese Funktion aufgerufen wird.

Achtung:Die von der Ressource zurückgegebenen Daten existieren nicht mehr nach dem Aufruf von curl_multi_remove_handle().

Parameter

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