<pre>
 
<?php
 
/**
 
 * Basic browser emulation: sending custom headers, processing cookies and redirects, sending referrer
 
 */
 
 
//set local timezone
 
date_default_timezone_set('UTC');
 
 
//Include library
 
require_once('gCurl/gcurl.class.php');
 
 
//init variables
 
$url = 'google.com';
 
$max_redirects = 20;
 
$i=0;
 
//some request headers
 
$request_headers = array(
 
    'User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.11) Gecko/20071127 Firefox/2.0.0.11',
 
    'Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5',
 
    'Accept-Language: en-us,en;q=0.5',
 
    'Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7',
 
);
 
$cookies = array();
 
 
try{
 
    //initialize the class
 
    $curl = new gCurl($url);
 
    
 
    //emulate Firefox
 
    $curl->Request->registerCustomHeadersArray($request_headers);
 
    
 
    do {
 
        $response = $curl->exec();
 
        //check for the redirect
 
        if ($new_url = $response->getHeaderByName('location')){
 
            echo 'redirect to ',$new_url,"<br>\r\n";
 
            
 
            //process cookies (skip domain, path and secure parameters for simplicity)
 
            foreach ($response->cookies as $c){
 
                if (isset($c['expires_ts']) && $c['expires_ts']>time()){
 
                    $cookies[$c['name']] = $c['value'];
 
                }else{
 
                    unset($cookies[$c['name']]);
 
                }
 
            }
 
            $curl->redirect($new_url);
 
            $curl->Request->registerCustomHeadersArray($request_headers);
 
            foreach ($cookies as $cookie_name=>$cookie_value){
 
                $curl->Request->addCookieVar($cookie_name,$cookie_value);
 
            }
 
 
            //set referrer with a direct curl_setopt call
 
            curl_setopt($curl->ch,CURLOPT_REFERER,$url);
 
            
 
            $url = $new_url;
 
            ++$i;
 
        }else{
 
            break;
 
        }
 
    }while ($i<$max_redirects);
 
}catch (gksException $E){
 
    echo $E->getHtmlMessage();
 
    exit;
 
}
 
 
//show the content received
 
echo htmlspecialchars($response);
 
 
 
 |