ID:               43510
 User updated by:  dz at bitxtender dot com
 Reported By:      dz at bitxtender dot com
 Status:           Open
 Bug Type:         Streams related
 Operating System: *
 PHP Version:      *
 New Comment:

The simple reason why this must work is because one might want to 
serialize an object with a file pointer, and that can only be done by 
grabbing the meta data on sleep, and restoring the stream on wakeup.

But fopen() on an HTTP resource with r+ of course gives a warning that

the stream does not support writing!

I stumbled across this when someone pointed out that in Agavi, it's not

possible to cache a response that is streaming content from an HTTP 
resource. Check 
http://trac.agavi.org/browser/branches/0.11/src/response/AgaviResponse.c
lass.php?rev=2205#L55 for some "real-life" code that relies on this ;)

Also, it never hurts to have things working 100% properly ;)


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

[2007-12-06 17:26:52] [EMAIL PROTECTED]

Reopening after discussions. David, please explain the reasoning

------------------------------------------------------------------------

[2007-12-06 13:50:09] [EMAIL PROTECTED]

Thank you for taking the time to write to us, but this is not
a bug. Please double-check the documentation available at
http://www.php.net/manual/ and the instructions on how to report
a bug at http://bugs.php.net/how-to-report.php

Why should the exact mode matter?

------------------------------------------------------------------------

[2007-12-06 03:15:34] dz at bitxtender dot com

Description:
------------
When an fopen() is done on an HTTP URL with mode "r", the 
stream_get_meta_data() result returns "r+"

Reproduce code:
---------------
$meta = stream_get_meta_data(fopen('http://www.google.com/', 'r'));
var_dump($meta['mode']);

Expected result:
----------------
string 'r' (length=1)

Actual result:
--------------
string 'r+' (length=2)

------------------------------------------------------------------------

[2007-12-06 02:18:22] dz at bitxtender dot com

Description:
------------
When an fopen() is done on an HTTP URL with mode "r", the 
stream_get_meta_data() result returns "r+"

Reproduce code:
---------------
$f = fopen('http://www.google.com/', 'r');
var_dump(stream_get_meta_data($f['mode']));



Expected result:
----------------
string 'r' (length=1)

Actual result:
--------------
string 'r+' (length=2)


------------------------------------------------------------------------


-- 
Edit this bug report at http://bugs.php.net/?id=43510&edit=1

Reply via email to