cURL Callback Function

Usually we get cURL response from curl_exec(). But we have options to get the output using callback functions. We can set callback function for both header and body output. Here is an example:

//Init curl session
$ch = curl_init();
//Set URL
curl_setopt($ch, CURLOPT_URL, ‘http://www.php.net/’);
// Set callback function for headers
curl_setopt($ch, CURLOPT_HEADERFUNCTION, ‘read_header’);
// Set callback function for body
curl_setopt($ch, CURLOPT_WRITEFUNCTION, ‘read_body’);
//Execute curl
curl_exec($ch);

//close curl session
curl_close($ch);

//Callback function for header
function read_header($ch, $string)
{
$length = strlen($string);
echo “Header: $string
\n”;
return $length;
}

//Callback function for body
function read_body($ch, $string)
{
$length = strlen($string);
echo “Received $length bytes
\n”;
return $length;
}

This script demonstrates how you can set callback functions to receive the HTTP response as it comes through. It’s really easy to use but nice feature.

Enjoy PHPing !

$rupom

Advertisements

4 thoughts on “cURL Callback Function

  1. How to send some args to callback function?
    For example:

    function getURL($url,$alias) {
    $ch = curl_init($url);
    // setting оptions
    curl_setopt($ch, CURLOPT_WRITEFUNCTION, ‘read_body’);

    }

    function read_body($ch, $string, $alias) {
    switch ($alias) {
    case ‘1’ :
    // some stuff
    break;
    case ‘2’ :
    // some stuff
    break;

    }

    }

    Like

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.