downloads | documentation | faq | getting help | mailing lists | licenses | wiki | reporting bugs | sites | links | conferences | my

search for in the

curl_errno> <curl_close
[edit] Last updated: Fri, 22 Jul 2011

view this page in


(PHP 5)

curl_copy_handleCopy a cURL handle along with all of its preferences


resource curl_copy_handle ( resource $ch )

Copies a cURL handle keeping the same preferences.



A cURL handle returned by curl_init().

Return Values

Returns a new cURL handle.


Example #1 Copying a cURL handle

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

// set URL and other appropriate options

// copy the handle
$ch2 curl_copy_handle($ch);

// grab URL ( and pass it to the browser

// close cURL resources, and free up system resources

curl_errno> <curl_close
[edit] Last updated: Fri, 22 Jul 2011
add a note add a note User Contributed Notes curl_copy_handle
ac221 at sussex dot ac dot uk 16-Jun-2008 10:00
Hmm I don't have a problem with this, using PHP 5.2.5 libcurl 7.16.3 maybe it's been fixed ...

I am m having trouble getting curl_copy_handle to copy all the curlopts across though...

    protected function curlMultiPrime(array $reqArr){
        // Store the request array so we can reinitialise the multi handle
        $this->reqArr = $reqArr;
        // Close existing curl uni handles
        foreach($reqArr as $curlConf){
            if(!($curlConf instanceof curlConfRequest ))
                throw new curlConfException('All objects passed to configure requests must be instances of curlConfRequest.',curlConfException::CURL_INVALID_CONF_OBJ);
            if(!$cch = curl_copy_handle($this->curlHandle)){
                throw new curlException('Failed to clone template curl handle.',$this->curlHandle);
            if(curl_multi_add_handle($this->curlMultiHandle,$cch) === 0){
                $this->curlUniHandleRef[] = $cch;
                throw new curlException('Failed to add curl handle to multi stack.',$cch);
administrator at proxy-list dot org 22-Jan-2008 01:08
There is some internal curl error (CURLE_FAILED_INIT) when you are trying to use just copied curl handle in curl_multi_add_handle(). I have checked the same problematic PHP code but with little difference: instead of creating curl’s copy I have used the original one (template). As I expect code works without any error. I think curl_multi_* along with curl_copy_handle() is still raw and needs some improvements.

With best wishes

Vitali Simsive
nicolac76 at yahoo dot fr 03-Sep-2007 10:14
Something work wrong if you use the var $i for a for...
$i cannot go over 127 (0111 1111b), more over you must say that the var is an int...

$curl = curl_init("");

$j=1;$j<=128;$j++) {
$ch = curl_copy_handle($curl);
Andrew 20-May-2007 06:39
You can use it for some kind of templates:

= array();
$ch[0] = curl_init();
curl_setopt($ch[0], CURLOPT_URL, '');
curl_setopt($ch[0], CURLOPT_HEADER, 0);
curl_setopt($ch[0], CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch[0], CURLOPT_FOLLOWLOCATION, 1);

$ch[1] = curl_copy_handle($ch[0]);
curl_setopt($ch[1], CURLOPT_URL, '');

$ch[2] = curl_copy_handle($ch[0]);
curl_setopt($ch[2], CURLOPT_URL, '');

/* And so on, when you need to get number of pages with same parameters... */


show source | credits | sitemap | contact | advertising | mirror sites