array ( 0 => 'index.php', 1 => 'PHP Manual', ), 'head' => array ( 0 => 'UTF-8', 1 => 'zh', ), 'this' => array ( 0 => 'function.curl-multi-info-read.php', 1 => 'curl_multi_info_read', ), 'up' => array ( 0 => 'ref.curl.php', 1 => 'cURL 函数', ), 'prev' => array ( 0 => 'function.curl-multi-getcontent.php', 1 => 'curl_multi_getcontent', ), 'next' => array ( 0 => 'function.curl-multi-init.php', 1 => 'curl_multi_init', ), 'alternatives' => array ( ), 'source' => array ( 'lang' => 'zh', 'path' => 'reference/curl/functions/curl-multi-info-read.xml', ), ); $setup["toc"] = $TOC; $setup["toc_deprecated"] = $TOC_DEPRECATED; $setup["parents"] = $PARENTS; manual_setup($setup); ?>
(PHP 5, PHP 7, PHP 8)
curl_multi_info_read — 获取当前传输的有关信息
查询多句柄是否有来自个别传输的消息或信息,消息可能包含诸如来自传输的错误代码或者仅是传输已完成之类的信息。
重复调用此函数,每次都会返回新结果,返回 false
作为此时没有更多信息可以获取的信号。通过
queued_messages
返回的整数包含当前函数调用后剩余的消息数量。
返回的资源指向的数据将无法在调用 curl_multi_remove_handle() 后继续存在。
成功时返回信息的关联数组,失败时返回 false
。
Key: | Value: |
---|---|
msg |
CURLMSG_DONE 常量。其他返回值当前不可用。 |
result |
CURLE_* 常量之一。如果一切都好,将会返回 CURLE_OK 。 |
handle |
cURL 资源类型表明它有关的句柄。 |
版本 | 说明 |
---|---|
8.0.0 |
multi_handle expects a CurlMultiHandle
instance now; previously, a resource was expected.
|
示例 #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_RETURNTRANSFER, 1);
curl_multi_add_handle($mh, $conn[$i]);
}
do {
$status = curl_multi_exec($mh, $active);
if ($active) {
curl_multi_select($mh);
}
while (false !== ($info = curl_multi_info_read($mh))) {
var_dump($info);
}
} while ($active && $status == CURLM_OK);
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)