From:             r-two at gmx dot de
Operating system: linux
PHP version:      Irrelevant
PHP Bug Type:     cURL related
Bug description:  odd behavior changes in php > 4.3.4 by CURLOPT_RETURNTRANSFER  

Description:
------------
I dont know exactly if this is a bug or just misentry in the
Documentation. So I simply start with the code responsible for this
behavior.

curl.h line 848:
case CURLOPT_RETURNTRANSFER:
   convert_to_long_ex(zvalue);
   if (Z_LVAL_PP(zvalue)) {
        ch->handlers->write->method = PHP_CURL_RETURN;
   } else {
        ch->handlers->write->method = PHP_CURL_STDOUT;
   }    
break; 

as you can see, the write->method is set to STDOUT if the value is 0. This
could be very perplexing if the write->method has previously change. (with
CURLOPT_FILE in my example)

a simply solution would be to cut the else tree and just change the
wirte->method by an none zero value.

a better one could be to rewrite the curl ext in a way that multible write
methods can be handeled.

Surely this is not a "real" bug, but either the documentation or the code
is wrong and in my opinion it's the code.


Kind regards,
Martin Hoch

Reproduce code:
---------------
<?php
        $ch = curl_init("http://www.php.net/";);
        $fp = fopen("example_homepage.txt", "w");
        curl_setopt($ch, CURLOPT_FILE, $fp);
        curl_setopt($ch, CURLOPT_HEADER, 0);
        curl_setopt($ch,CURLOPT_RETURNTRANSFER,0);
        curl_exec($ch);
        curl_close($ch);
        fclose($fp);
?>


Expected result:
----------------
As descripted above i expected the curl output in the file...

Actual result:
--------------
...but it occurs in stdout.

-- 
Edit bug report at http://bugs.php.net/?id=29591&edit=1
-- 
Try a CVS snapshot (php4):  http://bugs.php.net/fix.php?id=29591&r=trysnapshot4
Try a CVS snapshot (php5):  http://bugs.php.net/fix.php?id=29591&r=trysnapshot5
Fixed in CVS:               http://bugs.php.net/fix.php?id=29591&r=fixedcvs
Fixed in release:           http://bugs.php.net/fix.php?id=29591&r=alreadyfixed
Need backtrace:             http://bugs.php.net/fix.php?id=29591&r=needtrace
Need Reproduce Script:      http://bugs.php.net/fix.php?id=29591&r=needscript
Try newer version:          http://bugs.php.net/fix.php?id=29591&r=oldversion
Not developer issue:        http://bugs.php.net/fix.php?id=29591&r=support
Expected behavior:          http://bugs.php.net/fix.php?id=29591&r=notwrong
Not enough info:            http://bugs.php.net/fix.php?id=29591&r=notenoughinfo
Submitted twice:            http://bugs.php.net/fix.php?id=29591&r=submittedtwice
register_globals:           http://bugs.php.net/fix.php?id=29591&r=globals
PHP 3 support discontinued: http://bugs.php.net/fix.php?id=29591&r=php3
Daylight Savings:           http://bugs.php.net/fix.php?id=29591&r=dst
IIS Stability:              http://bugs.php.net/fix.php?id=29591&r=isapi
Install GNU Sed:            http://bugs.php.net/fix.php?id=29591&r=gnused
Floating point limitations: http://bugs.php.net/fix.php?id=29591&r=float

Reply via email to