HomeMenu
Jesus · Bible · HTML · CSS · JS · PHP · SVG · Applications

curl_multi_info_read

Description

The curl_multi_info_read of cURL for PHP gets information about the current transfers.

Syntax

curl_multi_info_read(
    CurlMultiHandle $multi_handle,
    int &$queued_messages = null
): array|false

Parameters

multi_handle

A cURL multi handle returned by curl_multi_init().

queued_messages

The number of messages that are still in the queue.

Return

Returns an associative array for the message on success, false on failure.

KeyValue
msgThe CURLMSG_DONE constant. Other return values are currently not available.
resultOne of the CURLE_* constants. If everything is OK, the CURLE_OK will be the result.
handleResource of type curl indicates the handle which it concerns.

Examples

1 · multi_handle

<?

// initialize multiple
$multi_handle = curl_multi_init();

    // initialize curl
    $handle1 = curl_init();
    $handle2 = curl_init();

        // set curl
        curl_setopt($handle1, CURLOPT_URL, "https://osbo.com/");
        curl_setopt($handle1, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($handle2, CURLOPT_URL, "https://osbo.com/");
        curl_setopt($handle2, CURLOPT_RETURNTRANSFER, 1);

        // add curl to multiple
        curl_multi_add_handle($multi_handle, $handle1);
        curl_multi_add_handle($multi_handle, $handle2);

        // execute multiple
        do
        {
            curl_multi_exec($multi_handle, $still_running);
        }
        while($still_running);

        // read multiple
        while($info = curl_multi_info_read($multi_handle))
        {
            print_r($info);
        }

        // remove curl from multiple
        curl_multi_remove_handle($multi_handle, $handle1);
        curl_multi_remove_handle($multi_handle, $handle2);

    // close curl
    curl_close($handle1);
    curl_close($handle2);

// close multiple
curl_multi_close($multi_handle);
Array
(
    [msg] => 1
    [result] => 0
    [handle] => CurlHandle Object
        (
        )

)
Array
(
    [msg] => 1
    [result] => 0
    [handle] => CurlHandle Object
        (
        )

)

2 · queued_messages

<?

// initialize multiple
$multi_handle = curl_multi_init();

    // initialize curl
    $handle1 = curl_init();
    $handle2 = curl_init();

        // set curl
        curl_setopt($handle1, CURLOPT_URL, "https://osbo.com/");
        curl_setopt($handle1, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($handle2, CURLOPT_URL, "https://osbo.com/");
        curl_setopt($handle2, CURLOPT_RETURNTRANSFER, 1);

        // add curl to multiple
        curl_multi_add_handle($multi_handle, $handle1);
        curl_multi_add_handle($multi_handle, $handle2);

        // execute multiple
        do
        {
            curl_multi_exec($multi_handle, $still_running);
        }
        while($still_running);

        // read multiple
        while($info = curl_multi_info_read($multi_handle, $queued_messages))
        {
            print_r($info);
            echo $queued_messages . PHP_EOL;
        }

        // remove curl from multiple
        curl_multi_remove_handle($multi_handle, $handle1);
        curl_multi_remove_handle($multi_handle, $handle2);

    // close curl
    curl_close($handle1);
    curl_close($handle2);

// close multiple
curl_multi_close($multi_handle);
Array
(
    [msg] => 1
    [result] => 0
    [handle] => CurlHandle Object
        (
        )

)
1
Array
(
    [msg] => 1
    [result] => 0
    [handle] => CurlHandle Object
        (
        )

)
0