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
curl_copy_handle
(PHP 5)
curl_copy_handle — Kopieren eines cURL-Handles inklusiver aller Voreinstellungen
Beschreibung
resource curl_copy_handle
( resource $ch
)
Diese Funktion kopiert ein cURL-Handle und gibt ein neues Handle mit den gleichen Voreinstellungen zurück.
Rückgabewerte
Gibt ein neues cURL-Handle zurück.
Beispiele
Beispiel #1 cURL-Handle kopieren
<?php
// erzeuge einen neuen cURL-Handle
$ch = curl_init();
// setze den URL und andere Optionen
curl_setopt($ch, CURLOPT_URL, 'http://www.example.com/');
curl_setopt($ch, CURLOPT_HEADER, 0);
// handle kopieren
$ch2 = curl_copy_handle($ch);
// URL auslesen und im Browser ausgeben
curl_exec($ch2);
// schliesse die cURL-Handles
curl_close($ch2);
curl_close($ch);
?>
curl_copy_handle
administrator at proxy-list dot org
22-Jan-2008 05:08
22-Jan-2008 05:08
nicolac76 at yahoo dot fr
03-Sep-2007 03:14
03-Sep-2007 03: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...
<?
$j=(int)0;
$curl = curl_init("http://www.example.com");
for($j=1;$j<=128;$j++) {
$ch = curl_copy_handle($curl);
curl_close($ch);
}
curl_close($curl);
?>
Andrew
19-May-2007 11:39
19-May-2007 11:39
You can use it for some kind of templates:
<?php
$ch = array();
$ch[0] = curl_init();
curl_setopt($ch[0], CURLOPT_URL, 'http://beengo.net/');
curl_setopt($ch[0], CURLOPT_HEADER, 0);
curl_setopt($ch[0], CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch[0], CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch[0], CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);
$ch[1] = curl_copy_handle($ch[0]);
curl_setopt($ch[1], CURLOPT_URL, 'http://beengo.net/cells/list');
$ch[2] = curl_copy_handle($ch[0]);
curl_setopt($ch[2], CURLOPT_URL, 'http://beengo.net/cells/list?q=travel');
/* And so on, when you need to get number of pages with same parameters... */
?>
