#21877 [Com]: fread may read less bytes than requested even if EOF is not reached ...

From: Date: Sun, 08 Jun 2003 14:01:31 +0000
Subject: #21877 [Com]: fread may read less bytes than requested even if EOF is not reached ...
References: 1  Groups: php.doc 
Request: Send a blank email to phpdoc+get-969354337@lists.php.net to get a copy of this message
ID: 21877 Comment by: nkist at operamail dot com Reported By: hholzgra@php.net Status: Verified Bug Type: Documentation problem Operating System: * PHP Version: 4CVS-2003-01-25 (stable) Assigned To: hholzgra New Comment: I have problems with below code too... It stops to read in the middle even for 10 KB files. $fd= fread(fopen("http://something.com/index.php", "r"), 100000000000); if (!($fd)) {echo "Error in loading page. Please try again later.";} $orgfile=Substr($fd,0, 100000000000); echo $orgfile; die; Previous Comments: ------------------------------------------------------------------------ [2003-01-28 13:07:29] philip@php.net True. How about using feof() in the example and including the falseproblem entity in the docs. ------------------------------------------------------------------------ [2003-01-28 04:11:23] hholzgra@php.net i prefere the while(!feof($f)) { $c=fgetc($f); ... } style ... ------------------------------------------------------------------------ [2003-01-27 20:29:53] philip@php.net Try this code instead: $f = fopen("./foo","r"); while (false !== ($c = fgetc($f))) { ... } As this is really what you want to do ;) The documentation for fgetc() really needs to mention this as most others that might encounter this 0==false do (such as readdir). A documention problem is to do the following to the fgetc docs: a) Add an example that keeps in mind false vs 0 b) Implement the &return.falseproblem; entity. ------------------------------------------------------------------------ [2003-01-27 19:53:30] gaelx at free dot fr here was my code: $f=fopen("./foo","r"); while($c=fgetc($f)){ ... } ...and the 'while' loop was quit long before EOF was reached. After examination, it was quit when a character 0 was read (thus confusion between 0 and EOF.......) ------------------------------------------------------------------------ [2003-01-25 13:07:29] hholzgra@php.net ok, it only true for non-blocking php streams ... but still this should be mentioned on the fread() page ------------------------------------------------------------------------ The remainder of the comments for this report are too long. To view the rest of the comments, please view the bug report online at http://bugs.php.net/21877 -- Edit this bug report at http://bugs.php.net/?id=21877&edit=1

« previous php.doc (#969354337) next »