|
php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login |
PatchesPull RequestsHistoryAllCommentsChangesGit/SVN commits
[2010-11-04 19:55 UTC] cataphract@php.net
-Assigned To:
+Assigned To: cataphract
[2010-11-04 19:55 UTC] cataphract@php.net
[2010-11-04 19:57 UTC] cataphract@php.net
-Package: cURL related
+Package: Streams related
[2010-11-05 02:29 UTC] cataphract@php.net
[2010-11-05 02:33 UTC] cataphract@php.net
-Status: Assigned
+Status: Closed
[2010-11-05 02:33 UTC] cataphract@php.net
[2010-11-05 11:55 UTC] pajoye@php.net
-Status: Closed
+Status: Assigned
[2010-11-05 11:55 UTC] pajoye@php.net
[2010-11-05 19:54 UTC] cataphract@php.net
-Status: Assigned
+Status: Closed
[2010-11-05 19:54 UTC] cataphract@php.net
|
|||||||||||||||||||||||||||
Copyright © 2001-2025 The PHP GroupAll rights reserved. |
Last updated: Thu Oct 30 22:00:01 2025 UTC |
Description: ------------ If I call: $fh = fopen('/tmp/yahoo.html', 'xb'); $ch = curl_init('http://www.yahoo.com/'); curl_setopt($ch, CURLOPT_FILE, $fh); then the last line will fail with the misleading fopencookie-message. I need to use 'xb' and not 'wb', to ensure that just 1 script instance writes into that file - please see more info here: http://stackoverflow.com/questions/4096470/php-curl-curl-setopt-fopencookie-failed Test script: --------------- <?php #phpinfo(); $fh = fopen('/tmp/yahoo.html', 'xb'); if ($fh) { $ch = curl_init('http://www.yahoo.com/'); curl_setopt($ch, CURLOPT_FILE, $fh); # XXX the line 6 curl_setopt($ch, CURLOPT_HEADER, FALSE); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE); curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']); #curl_setopt($ch, CURLOPT_COOKIEJAR, '/dev/null'); #curl_setopt($ch, CURLOPT_COOKIEFILE, '/dev/null'); #curl_setopt($ch, CURLOPT_COOKIEJAR, '/tmp/cookies.txt'); #curl_setopt($ch, CURLOPT_COOKIEFILE, '/tmp/cookies.txt'); curl_exec($ch); if(!curl_errno($ch)) { $info = curl_getinfo($ch); echo 'Took '.$info['total_time'] . 's to send a request to '.$info['url']; } curl_close($ch); fclose($fh); } else { echo 'Can not open /tmp/yahoo.html'; } ?> Expected result: ---------------- I expect the script create the file /tmp/yahoo.html on the 1st run and put the downloaded content into it. Actual result: -------------- Nov 4 12:55:19 centos httpd: PHP Fatal error: curl_setopt() [<a href='function.curl-setopt'>function.curl-setopt</a>]: fopencookie failed in /var/www/html/proxy3.php on line 6 And the file is sero-sized: afarber@centos:html> ls -alZ /tmp/yahoo.html -rw-r--r-- apache apache user_u:object_r:httpd_tmp_t /tmp/yahoo.html