curl_share_init

Initialize a cURL share handle

&reftitle.description; `CurlShareHandle` `curl_share_init`

Allows to share data between cURL handles.

&reftitle.parameters; &no.function.parameters;
&reftitle.returnvalues;

Returns a cURL share handle.

&reftitle.changelog;

&Version; | &Description;
8.0.0 | This function returns a `CurlShareHandle` instance now; previously, a `resource` was returned.

&reftitle.examples;

### `curl_share_init` example

This example will create a cURL share handle, add two cURL handles to it, and then run them with cookie data sharing.

    <?php
    // Create cURL share handle and set it to share cookie data
    $sh = curl_share_init();
    curl_share_setopt($sh, CURLSHOPT_SHARE, CURL_LOCK_DATA_COOKIE);

    // Initialize the first cURL handle and assign the share handle to it
    $ch1 = curl_init("http://example.com/");
    curl_setopt($ch1, CURLOPT_SHARE, $sh);

    // Execute the first cURL handle
    curl_exec($ch1);

    // Initialize the second cURL handle and assign the share handle to it
    $ch2 = curl_init("http://php.net/");
    curl_setopt($ch2, CURLOPT_SHARE, $sh);

    // Execute the second cURL handle
    //  all cookies from $ch1 handle are shared with $ch2 handle
    curl_exec($ch2);

    // Close the cURL share handle
    curl_share_close($sh);

    // Close the cURL handles
    curl_close($ch1);
    curl_close($ch2);
    ?>

&reftitle.seealso;

- `curl_share_setopt`
- `curl_share_close`
- `curl_share_init_persistent`