curl_init

Initialize a cURL session

&reftitle.description; ``CurlHandle``false```curl_init` ``string``null```url`&null;

Initializes a new session and return a cURL handle for use with the `curl_setopt`, `curl_exec`, and `curl_close` functions.

&reftitle.parameters;

`url`

- If provided, the `CURLOPT_URL` option will be set to its value. You can manually set this using the `curl_setopt` function.

  The `file` protocol is disabled by cURL if open_basedir is set.

&reftitle.returnvalues;

Returns a cURL handle on success, &false; on errors.

&reftitle.changelog;

&Version; | &Description;
8.0.0 | On success, this function returns a `CurlHandle` instance now; previously, a `resource` was returned.
8.0.0 | `url` is nullable now.

&reftitle.examples;

### Initializing a new cURL session and fetching a web page

    <?php
    // create a new cURL resource
    $ch = curl_init();

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

    // grab URL and pass it to the browser
    curl_exec($ch);

    // close cURL resource, and free up system resources
    curl_close($ch);
    ?>

&reftitle.seealso;

- `curl_close`
- `curl_multi_init`