ID: 42300
User updated by: foxgoblin at gmail dot com
Reported By: foxgoblin at gmail dot com
Status: Open
Bug Type: cURL related
Operating System: windows xp
PHP Version: 5CVS-2007-08-14 (snap)
New Comment:
I try php/5.2.0 , it's ok!
it build php_curl with libcurl/7.14.0
cURL Information => libcurl/7.14.0 OpenSSL/0.9.8d zlib/1.2.3
Previous Comments:
------------------------------------------------------------------------
[2007-10-18 17:33:45] foxgoblin at gmail dot com
cURL Information => libcurl/7.16.0 OpenSSL/0.9.8e zlib/1.2.3
I use php.net distribute Windows Binaries php-5.2.4, it build php_curl
extension with libcurl/7.16.0 .
------------------------------------------------------------------------
[2007-10-13 13:19:07] [EMAIL PROTECTED]
Your code works just fine for me with PHP 5.3-dev and libcurl 7.17.0.
Which version of libcurl are you using? Does upgrading the a more
recent version help?
------------------------------------------------------------------------
[2007-08-14 18:57:22] foxgoblin at gmail dot com
Description:
------------
use curl_copy_handle copy the curl handle, add in curl multi handle,
curl_multi_exec return nothing.
Reproduce code:
---------------
<?
function getMultiCUrlContent($chs){
$contents = array();
$mh = curl_multi_init();
foreach($chs as $key => $ch){
curl_multi_add_handle($mh,$ch);
}
do {
$mrc = curl_multi_exec($mh, $active);
} while ($mrc == CURLM_CALL_MULTI_PERFORM);
while ($active and $mrc == CURLM_OK) {
// wait for network
if (curl_multi_select($mh) != -1) {
// pull in any new data, or at least handle timeouts
do {
$mrc = curl_multi_exec($mh, $active);
} while ($mrc == CURLM_CALL_MULTI_PERFORM);
}
}
if ($mrc != CURLM_OK) {
echo "[".date("Y-m-d H:i:s")."]\t[getMultiCUrlContent
error]\t".$mrc."\n";
}
foreach($chs as $key => $ch){
if(curl_errno($ch) == CURLE_OK){
$contents[$key]= curl_multi_getcontent($ch);
}
else{
echo "[".date("Y-m-d H:i:s")."]\t[get content
error]\t".curl_error($ch)."\n";
}
}
curl_multi_close($mh);
return $contents;
}
$chs = array();
$ch = curl_init("http://www.google.com/");
curl_setopt($ch,CURLOPT_RETURNTRANSFER,TRUE);
$chs[] = $ch;
$ch = curl_copy_handle($ch);
$chs[] = $ch;
$contents = getMultiCUrlContent($chs);
print_r($contents);
?>
Expected result:
----------------
Array
(
[0] => <html><head><meta http-equiv="content-type"
content="text/html; charset=ISO-8859-1"><title>Google</title>...
[1] => <html><head><meta http-equiv="content-type"
content="text/html; charset=ISO-8859-1"><title>Google</title>...
)
Actual result:
--------------
Array
(
[0] => <html><head><meta http-equiv="content-type"
content="text/html; charset=ISO-8859-1"><title>Google</title>...
[1] =>
)
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=42300&edit=1