ID: 15491 Updated by: [EMAIL PROTECTED] Reported By: [EMAIL PROTECTED] Status: Bogus Bug Type: cURL related Operating System: Linux 2.4 (RedHat 7.2) PHP Version: 4.1.1 New Comment:
mhhh...what i mean is: If CURLOPT_RETURNTRANSFER set to 1 curl_exec() should return the transfered content instead of printing it out directly (see http://www.php.net/manual/en/function.curl-setopt.php) In this case (when CURLOPT_RETURNTRANSFER=1) curl_exec() should return exactly the transfered content and not the statuscode Have a look at the example: <?php $url = 'http://127.0.0.1/empty_document.html';#Its an empty html document $ch = curl_init($url); curl_setopt ( $ch, CURLOPT_RETURNTRANSFER, 1); $content= curl_exec ( $ch);#returns 1, should return nothink echo "content of $url :$content"; echo "\n"; curl_setopt ( $ch, CURLOPT_RETURNTRANSFER, 0); echo "content of $url :"; curl_exec ( $ch);# print out nothink - right ?> Previous Comments: ------------------------------------------------------------------------ [2002-03-03 11:30:26] [EMAIL PROTECTED] This is the correct behaviour, it signifies that the request was successfully made, whether or not the server returns data is not a cURL thing... ------------------------------------------------------------------------ [2002-02-11 18:51:04] [EMAIL PROTECTED] Its not exactly the same bug described in #15307. Bug #15307 was fixed in the cvs of curl.c (V 1.103) ... i get the last CVS curl.c (V 1.105) the Segfault was fixed but php returns 1 (RETURN_TRUE) in such situation. Cheers Hans-J�rgen Petrich ------------------------------------------------------------------------ [2002-02-11 18:25:38] [EMAIL PROTECTED] This is the same bug I reported in report #15307, though I didn't provide a fix like Hans did. Way to go! ------------------------------------------------------------------------ [2002-02-10 14:54:09] [EMAIL PROTECTED] Hi, i still working with the PHP's curl functions (PHP 4.1.1) . When call curl_exec() and CURLOPT_RETURNTRANSFER ist set (to 1) via curl_opt() - php quit with a Segfault when curl_exec() receive nothink from the Server. After i get the last CVS curl.c (V 1.105) the Segfault was fixed but php return 1 (RETURN_TRUE) in such situation. I have write a small (and perhaps dirty) hack witch will fix this. Perhaps the author of curl.c can update curl.c in the CVS to avoid the wrong return value Thank u, PHP is great. Hans-Juergen Petrich /* curl.c */ /* {{{ proto bool curl_exec(int ch) Perform a CURL session */ PHP_FUNCTION(curl_exec) { zval **zid; php_curl *ch; CURLcode error; if (ZEND_NUM_ARGS() != 1 || zend_get_parameters_ex(1, &zid) == FAILURE) { WRONG_PARAM_COUNT; } ZEND_FETCH_RESOURCE(ch, php_curl *, zid, -1, le_curl_name, le_curl); error = curl_easy_perform(ch->cp); if (error != CURLE_OK) { if (ch->handlers->write->buf.len > 0) smart_str_free(&ch->handlers->write->buf); SAVE_CURL_ERROR(ch, error); RETURN_FALSE; } if (ch->handlers->write->method == PHP_CURL_RETURN) { if (ch->handlers->write->buf.len <= 0) RETURN_NULL(); if (ch->handlers->write->type != PHP_CURL_BINARY) smart_str_0(&ch->handlers->write->buf); RETURN_STRINGL(ch->handlers->write->buf.c, ch->handlers->write->buf.len, 0); } RETURN_TRUE; } /* }}} */ ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=15491&edit=1
