curl_multi_add_handle

Add a normal cURL handle to a cURL multi handle

&reftitle.description; `int` `curl_multi_add_handle` `CurlMultiHandle` `multi_handle` `CurlHandle` `handle`

Adds the `handle` handle to the multi handle `multi_handle`

&reftitle.parameters;

&curl.mh.description; &curl.ch.description;
&reftitle.returnvalues;

Returns 0 on success, or one of the `CURLM_XXX` errors code.

&reftitle.changelog;

&Version; | &Description;
&curl.changelog.multi-handle-param; &curl.changelog.handle-param;

&reftitle.examples;

### `curl_multi_add_handle` example

This example will create two cURL handles, add them to a multi handle, and process them asynchronously.

    <?php
    // create both cURL resources
    $ch1 = curl_init();
    $ch2 = curl_init();

    // set URL and other appropriate options
    curl_setopt($ch1, CURLOPT_URL, "http://www.example.com/");
    curl_setopt($ch1, CURLOPT_HEADER, 0);
    curl_setopt($ch2, CURLOPT_URL, "http://www.php.net/");
    curl_setopt($ch2, CURLOPT_HEADER, 0);

    //create the multiple cURL handle
    $mh = curl_multi_init();

    //add the two handles
    curl_multi_add_handle($mh,$ch1);
    curl_multi_add_handle($mh,$ch2);

    //execute the multi handle
    do {
        $status = curl_multi_exec($mh, $active);
        if ($active) {
            curl_multi_select($mh);
        }
    } while ($active && $status == CURLM_OK);

    //close all the handles
    curl_multi_remove_handle($mh, $ch1);
    curl_multi_remove_handle($mh, $ch2);
    curl_multi_close($mh);
    ?>

&reftitle.seealso;

- `curl_multi_remove_handle`
- `curl_multi_init`
- `curl_init`