note 74765 added to function.stream-wrapper-register
| From: | Anonymouse at Coward dot com | Date: | Thu, 26 Apr 2007 16:18:13 +0000 |
| Subject: | note 74765 added to function.stream-wrapper-register | ||
| Groups: | php.notes | ||
| Request: | Send a blank email to php-notes+get-125894@lists.php.net to get a copy of this message | ||
Use caution with writing code that may use stream wrappers with fread, as fread behaviour is
'inconsistent' with normal file operations because of the 8192 bytes internal buffer used
by PHP ( >= 5.0.5 IIRC ).
ie:
fread($filehandle, filesize($filename))
will not work correctly if the file is larger than 8KB, it will only get you the first 8192 bytes.
Also, it seems that:
fread($filehandle, 4096)
will still give you 8KB (if the file is larger than 8KB) as 8192 bytes is always passed to
stream_read as count.
This makes it somewhat impossible to just 'drop in' a stream where normally a file would
be used without taking special care.
Yes, it IS mentioned in the documentation here if you read it really well, but I for one spent some
time scratching my head over it, and looking at the bug tracker, I am not the only one. The
dev's say this inconsistancy is a feature though, even if it does make stream wrappers pretty
much useless 'out of the box'.
file_get_contents and stream_get_contents seem to work ok though.
----
Server IP: 194.109.193.76
Probable Submitter: 85.147.240.242
----
Manual Page -- http://www.php.net/manual/en/function.stream-wrapper-register.php
Edit -- https://master.php.net/note/edit/74765
Del: integrated -- https://master.php.net/note/delete/74765/integrated
Del: useless -- https://master.php.net/note/delete/74765/useless
Del: bad code -- https://master.php.net/note/delete/74765/bad+code
Del: spam -- https://master.php.net/note/delete/74765/spam
Del: non-english -- https://master.php.net/note/delete/74765/non-english
Del: in docs -- https://master.php.net/note/delete/74765/in+docs
Del: other reasons-- https://master.php.net/note/delete/74765
Reject -- https://master.php.net/note/reject/74765
Search -- https://master.php.net/manage/user-notes.php