What is cURL in PHP?

0 votes
asked Jun 17, 2010 by aakash-chakravarthy

In PHP, I see the word cURL in many PHP projects. What is it? How does it work?

Reference Link: (What is cURL in PHP?)

8 Answers

0 votes
answered Jun 17, 2010 by sushil-bharwani

cURL is a way you can hit a URL from your code to get a html response from it. cURL means client URL which allows you to connect with other URLs and use their responses in your code.

0 votes
answered Jun 17, 2010 by johannes-gorset

cURL is a library that lets you make HTTP requests in PHP. Everything you need to know about it (and most other extensions) can be found in the PHP manual.

In order to use PHP's cURL functions you need to install the ยป libcurl package. PHP requires that you use libcurl 7.0.2-beta or higher. In PHP 4.2.3, you will need libcurl version 7.9.0 or higher. From PHP 4.3.0, you will need a libcurl version that's 7.9.8 or higher. PHP 5.0.0 requires a libcurl version 7.10.5 or greater.

You can make HTTP requests without cURL, too, though it requires allow_url_fopen to be enabled in your php.ini file.

// Make a HTTP GET request and print it (requires allow_url_fopen to be enabled)
print file_get_contents('http://www.example.com/');
0 votes
answered Jan 2, 2011 by jaime-hablutzel

cURL in PHP is a bridge to use command line cURL from the php language

0 votes
answered Jan 21, 2013 by naved-ahmed

The cURL extension to PHP is designed to allow you to use a variety of web resources from within your PHP script.

0 votes
answered Jun 4, 2014 by eric-leschinski



The curl_exec command in PHP is a bridge to use curl from console. curl_exec makes it easy to quickly and easily do GET/POST requests, receive responses from other servers like JSON and download files.

Warning, Danger:

curl is evil and dangerous if used improperly because it is all about getting data from out there in the internet. Someone can get between your curl and the other server and inject a rm -rf / into your response, and then why am I dropped to a console and ls -l doesn't even work anymore? Because you mis underestimated the dangerous power of curl. Don't trust anything that comes back from curl to be safe, even if you are talking to your own servers. You could be pulling back malware to relieve fools of their wealth.


These were done on Ubuntu 12.10

  1. Basic curl from the commandline:

    el@apollo:/home/el$ curl http://i.imgur.com/4rBHtSm.gif > mycat.gif
      % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                     Dload  Upload   Total   Spent    Left  Speed
    100  492k  100  492k    0     0  1077k      0 --:--:-- --:--:-- --:--:-- 1240k

    Then you can open up your gif in firefox:

    firefox mycat.gif

    Glorious cats evolving Toxoplasma gondii to cause women to keep cats around and men likewise to keep the women around.

  2. cURL example get request to hit google.com, echo to the commandline:

    This is done through the phpsh terminal:

    php> $ch = curl_init();
    php> curl_setopt($ch, CURLOPT_URL, 'http://www.google.com');
    php> curl_exec($ch);

    Which prints and dumps a mess of condensed html and javascript (from google) to the console.

  3. cURL example put the response text into a variable:

    This is done through the phpsh terminal:

    php> $ch = curl_init();
    php> curl_setopt($ch, CURLOPT_URL, 'http://i.imgur.com/wtQ6yZR.gif');
    php> curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    php> $contents = curl_exec($ch);
    php> echo $contents;

    The variable now contains the binary which is an animated gif of a cat, possibilities are infinite.

  4. Do a curl from within a PHP file:

    Put this code in a file called myphp.php:

      $buffer = curl_exec($curl_handle);
      if (empty($buffer)){
          print "Nothing returned from url.<p>";
          print $buffer;

    Then run it via commandline:

    php < myphp.php

    You ran myphp.php and executed those commands through the php interpreter and dumped a ton of messy html and javascript to screen.

    You can do GET and POST requests with curl, all you do is specify the parameters as defined here: http://curl.haxx.se/docs/httpscripting.html#POST

Reminder of danger:

Be careful dumping curl output around, if any of it gets interpreted and executed, your box is owned and your credit card info will be sold to third parties and you'll get a mysterious $900 charge from an Alabama one-man flooring company that's a front for overseas credit card fraud crime ring.

0 votes
answered Jan 9, 2015 by neha-sinha

cURL is a way you can hit a URL from your code to get a HTML response from it. It's used for command line cURL from the PHP language.

// Step 1
$cSession = curl_init(); 
// Step 2
curl_setopt($cSession,CURLOPT_HEADER, false); 
// Step 3
// Step 4
// Step 5
echo $result;

Step 1: Initialize a curl session using curl_init().

Step 2: Set option for CURLOPT_URL. This value is the URL which we are sending the request to. Append a search term curl using parameter q=. Set option for CURLOPT_RETURNTRANSFER. True will tell curl to return the string instead of print it out. Set option for CURLOPT_HEADER, false will tell curl to ignore the header in the return value.

Step 3: Execute the curl session using curl_exec().

Step 4: Close the curl session we have created.

Step 5: Output the return string.

public function curlCall($apiurl, $auth, $rflag)
    $ch = curl_init($apiurl);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

    if($auth == 'auth') { 
        curl_setopt($ch, CURLOPT_USERPWD, "passw:passw");
    } else {
        curl_setopt($ch, CURLOPT_USERPWD, "ss:ss1");
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    $dt = curl_exec($ch);        
    if($rflag != 1) {
        $dt = json_decode($dt,true);        
    return $dt;

This is also used for authentication. We can also set the username and password for authentication.

For more functionality, see the user manual or the following tutorial:


0 votes
answered Sep 15, 2017 by ankur-kumar-singh

Curl is nothing but an extension of PHP which inherits behaviors of the normal curl command & library written primarily for Linux/Unix command line tool

What is Curl? cURL stand for Client URL. The cURL is used to send data to any URL. For more detail about what curl exactly is, you can visit CURL Website

cURL in PHP Now the same concept is introduced in PHP, to send data to any accessible URL via the different protocol, for example, HTTP or FTP. For More detail, you may refer to PHP Curl Tutorial

0 votes
answered Sep 15, 2017 by joomler


  • cURL is a way you can hit a URL from your code to get a HTML response from it.
  • It's used for command line cURL from the PHP language.
  • cURL is a library that lets you make HTTP requests in PHP.

PHP supports libcurl, a library created by Daniel Stenberg, that allows you to connect and communicate to many different types of servers with many different types of protocols. libcurl currently supports the http, https, ftp, gopher, telnet, dict, file, and ldap protocols. libcurl also supports HTTPS certificates, HTTP POST, HTTP PUT, FTP uploading (this can also be done with PHP's ftp extension), HTTP form based upload, proxies, cookies, and user+password authentication.

Once you've compiled PHP with cURL support, you can begin using the cURL functions. The basic idea behind the cURL functions is that you initialize a cURL session using the curl_init(), then you can set all your options for the transfer via the curl_setopt(), then you can execute the session with the curl_exec() and then you finish off your session using the curl_close().

Sample Code

// error reporting
ini_set("display_errors", 1);

//setting url
$url = 'http://example.com/api';

$data = array("message" => "Hello World!!!");

try {
    $ch = curl_init($url);
    $data_string = json_encode($data);

    if (FALSE === $ch)
        throw new Exception('failed to initialize');

        curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
        curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, false);
        curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
        curl_setopt($ch, CURLOPT_HTTPHEADER, array( 'Content-Type: application/json', 'Content-Length: ' . strlen($data_string)));
        curl_setopt($ch, CURLOPT_TIMEOUT, 5);
        curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);

        $output = curl_exec($ch);

    if (FALSE === $output)
        throw new Exception(curl_error($ch), curl_errno($ch));

    // ...process $output now
} catch(Exception $e) {

        'Curl failed with error #%d: %s',
        $e->getCode(), $e->getMessage()),

For more information, please check -

Welcome to Q&A, where you can ask questions and receive answers from other members of the community.
Website Online Counter