ID: 30936 Updated by: [EMAIL PROTECTED] Reported By: jason at e7x dot com -Status: Open +Status: Bogus Bug Type: Filesystem function related Operating System: Windows 2000/Linux PHP Version: 4.3.9 New Comment:
http://ch.php.net/manual/en/function.fread.php First paragraph: "fread() reads up to length bytes from the file pointer referenced by handle." Previous Comments: ------------------------------------------------------------------------ [2004-11-30 00:27:43] jason at e7x dot com Length bytes have not been read and EOF was not reached, this is not a network stream. In the example code there *are* 15000 bytes available to read. Regular file system functions, compress.zlib (didn't try other builtin streams) and PHP <= 4.3.8 have no problem reading more than 8192 bytes in one hit. I can't find any reference to an 8192 limit anywhere in the manual. ------------------------------------------------------------------------ [2004-11-29 23:24:45] [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 http://php.net/fread says: fread() reads up to length bytes from the file pointer referenced by handle note the \"up to\". ------------------------------------------------------------------------ [2004-11-29 22:47:45] jason at e7x dot com Description: ------------ Attempting to fread() more than 8192 bytes from a userspace stream wrapper will only read and return the first 8192 bytes, putting an echo statement in stream_read() shows that it is only being called once. Reading <= 8192 bytes at a time works as expected, as does fgets($f, 15000) (reads 14999 bytes). This bug is only present in 4.3.9 and 4.3.10RC1, 4.3.8 works fine. Reproduce code: --------------- <?php // using example class from the manual: // http://uk.php.net/stream_wrapper_register $x = str_repeat('x', 15000); $f = fopen('var://x', 'r'); $len = strlen(fread($f, 15000)); fclose($f); echo "Read $len bytes"; ?> Expected result: ---------------- Read 15000 bytes Actual result: -------------- Read 8192 bytes ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=30936&edit=1