From: benjcarson at digitaljunkies dot ca Operating system: Linux PHP version: 5CVS-2004-07-05 (dev) PHP Bug Type: Filesystem function related Bug description: fread() only reads 8192 bytes from a local file
Description: ------------ In the latest cvs snap, fread() does not read more than 8192 bytes from a local file, despite specifying a larger read size as the second parameter. If the fread() call is wrapped in a while (!feof) loop the file can be read correctly, but only 8k at a time. This contradicts the first example in the manual (http://www.php.net/manual/en/function.fread.php) and is a BC break. As far as I can tell the change was made sometime between the 2004-06-22 snap and the 2004-07-04 snap. I've tested both using my php.ini file and without (i.e. using the built-in defaults). I configured using the following command: ./configure --prefix=/usr --with-apxs=/usr/bin/apxs \ --enable-memory-limit \ --with-layout-GNU\ --enable-bcmath \ --enable-calendar \ --with-curl=/usr \ --enable-exif \ --enable-ftp \ --enable-mbstring \ --enable-shmop \ --enable-sockets \ --enable-sysvsem \ --enable-sysvshm \ --enable-wddx \ --with-bz2 \ --with-config-file-path=/etc/php5/apache \ --with-gd=/usr \ --with-freetype-dir=shared,/usr \ --with-jpeg-dir=/usr \ --with-png-dir=shared,/usr \ --with-ttf=shared,/usr \ --with-xpm-dir=shared,/usr/X11R6 \ --with-gettext \ --with-kerberos=/usr \ --with-ldap=shared,/usr \ --with-mhash=shared,/usr \ --with-mm \ --with-ncurses=/usr \ --with-openssl=/usr \ --with-pcre-regex=/usr \ --with-pear \ --with-pgsql \ --with-pspell=/usr \ --with-zlib \ --with-zlib-dir=/usr Reproduce code: --------------- #!/usr/bin/php <?php $filename = "/some/largish/local/file"; $fd = fopen($filename, 'r'); $contents = fread($fd, filesize($filename)); echo strlen($contents) ."\n"; fclose($fd); ?> Expected result: ---------------- (the file's actual size, in bytes) Actual result: -------------- 8192 -- Edit bug report at http://bugs.php.net/?id=29023&edit=1 -- Try a CVS snapshot (php4): http://bugs.php.net/fix.php?id=29023&r=trysnapshot4 Try a CVS snapshot (php5): http://bugs.php.net/fix.php?id=29023&r=trysnapshot5 Fixed in CVS: http://bugs.php.net/fix.php?id=29023&r=fixedcvs Fixed in release: http://bugs.php.net/fix.php?id=29023&r=alreadyfixed Need backtrace: http://bugs.php.net/fix.php?id=29023&r=needtrace Need Reproduce Script: http://bugs.php.net/fix.php?id=29023&r=needscript Try newer version: http://bugs.php.net/fix.php?id=29023&r=oldversion Not developer issue: http://bugs.php.net/fix.php?id=29023&r=support Expected behavior: http://bugs.php.net/fix.php?id=29023&r=notwrong Not enough info: http://bugs.php.net/fix.php?id=29023&r=notenoughinfo Submitted twice: http://bugs.php.net/fix.php?id=29023&r=submittedtwice register_globals: http://bugs.php.net/fix.php?id=29023&r=globals PHP 3 support discontinued: http://bugs.php.net/fix.php?id=29023&r=php3 Daylight Savings: http://bugs.php.net/fix.php?id=29023&r=dst IIS Stability: http://bugs.php.net/fix.php?id=29023&r=isapi Install GNU Sed: http://bugs.php.net/fix.php?id=29023&r=gnused Floating point limitations: http://bugs.php.net/fix.php?id=29023&r=float