curl_multi_info_read
(PHP 5)
curl_multi_info_read — Get information about the current transfers
Description
$mh
[, int &$msgs_in_queue
= NULL
] )Ask the multi handle if there are any messages or information from the individual transfers. Messages may include information such as an error code from the transfer or just the fact that a transfer is completed.
Repeated calls to this function will return a new result each time, until a FALSE
is returned
as a signal that there is no more to get at this point. The integer pointed to with
msgs_in_queue
will contain the number of remaining messages after this
function was called.
The data the returned resource points to will not survive calling curl_multi_remove_handle().
Parameters
-
mh
-
A cURL multi handle returned by curl_multi_init().
-
msgs_in_queue
-
Number of messages that are still in the queue
Return Values
On success, returns an associative array for the message, FALSE
on failure.
Key: | Value: |
---|---|
msg | The CURLMSG_DONE constant. Other return values
are currently not available. |
result | One of the CURLE_* constants. If everything is
OK, the CURLE_OK will be the result. |
handle | Resource of type curl indicates the handle which it concerns. |
Examples
Example #1 A curl_multi_info_read() example
<?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);
$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));
?>
The above example will output something similar to:
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)
Changelog
Version | Description |
---|---|
5.2.0 |
msgs_in_queue was added.
|
- PHP Руководство
- Функции по категориям
- Индекс функций
- Справочник функций
- Другие службы
- Клиентская библиотека работы с URL
- curl_close
- curl_copy_handle
- curl_errno
- curl_error
- curl_escape
- curl_exec
- curl_file_create
- curl_getinfo
- curl_init
- curl_multi_add_handle
- curl_multi_close
- curl_multi_exec
- curl_multi_getcontent
- curl_multi_info_read
- curl_multi_init
- curl_multi_remove_handle
- curl_multi_select
- curl_multi_setopt
- curl_multi_strerror
- curl_pause
- curl_reset
- curl_setopt_array
- curl_setopt
- curl_share_close
- curl_share_init
- curl_share_setopt
- curl_strerror
- curl_unescape
- curl_version
Коментарии
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.