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, ‘’);
// 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

//close curl session

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

//Callback function for body
function read_body($ch, $string)
$length = strlen($string);
echo “Received $length bytes
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 !



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
    case ‘2’ :
    // some stuff




Leave a Reply

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

You are commenting using your 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.