(PHP 4 >= 4.0.2, PHP 5, PHP 7, PHP 8)

curl_initInitialize a cURL session


curl_init(?string $url = null): CurlHandle|false

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



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.

Return Values

Returns a cURL handle on success, false on errors.


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.


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

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

// set URL and other appropriate options
curl_setopt($ch, CURLOPT_URL, "");
curl_setopt($ch, CURLOPT_HEADER, 0);

// grab URL and pass it to the browser

// close cURL resource, and free up system resources

See Also

add a note add a note

User Contributed Notes 1 note

webmaster at jamescobban dot net
3 years ago
On recent distributions CURL and PHP support for CURL have not been included in the main product.  In particular in recent distributions of Ubuntu Linux CURL and PHP support for CURL are not even available from the official repositories.  The steps to incorporate support are complex and require adding a non-standard repository.  It is therefore advisable for programmers to rewrite code to use the stream interface to access resources across the Internet.  For example:

$opts = array(
        'http' => array (
              "Accept-language: en\r\n".
              "Content-type: application/x-www-form-urlencoded\r\n",

$context = stream_context_create($opts);

$fp = fopen('', 'r', false, $context);


This stream support can also be accessed using the object-oriented interface of SplFileObject.
To Top