ID:               42300
 User updated by:  foxgoblin at gmail dot com
 Reported By:      foxgoblin at gmail dot com
-Status:           Feedback
+Status:           Open
 Bug Type:         cURL related
 Operating System: windows xp
 PHP Version:      5CVS-2007-08-14 (snap)
 New Comment:

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 .


Previous Comments:
------------------------------------------------------------------------

[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

Reply via email to