#29159 [Opn->Bgs]: readfile (or fpassthru or even php_stream_passthru) can not output large++ file

From: Date: Wed, 14 Jul 2004 19:02:27 +0000
Subject: #29159 [Opn->Bgs]: readfile (or fpassthru or even php_stream_passthru) can not output large++ file
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-62280@lists.php.net to get a copy of this message
ID: 29159 Updated by: wez@php.net Reported By: victor-php at boivie dot com -Status: Open +Status: Bogus Bug Type: Filesystem function related Operating System: FreeBSD 4.7 PHP Version: 5.0.0 New Comment: When you have output buffering enabled, all your output will be buffered. Turn off output buffering when you are spitting out large files and your problem will go away. Previous Comments: ------------------------------------------------------------------------ [2004-07-14 20:18:21] victor-php at boivie dot com Description: ------------ victor:~> php -v PHP 5.0.0RC2 (cgi) (built: Apr 30 2004 08:15:25) (oh well, this issue still exists in 5.0.0) victor:~> grep output /usr/local/lib/php.ini <snip> output_buffering = 4096 <snip> output_handler = <snip> zlib.output_compression = Off victor:~> ls -l test.fil -rw-r--r-- 1 root wheel 734939136 Oct 14 2003 test.fil -------------------------------- As the results shows, PHP tries to allocate the whole file in memory which is bad. I thought php_stream_passthru used a small buffer and that it didn't allocate the whole file, but I'm not familiar with the PHP source code. Reproduce code: --------------- <?php readfile("test.fil"); ?> Expected result: ---------------- A lot of file data in the browser window (the file contents) Actual result: -------------- PHP Fatal error: Out of memory: cannot allocate 734941208 bytes! in /usr/home/victor/foo.php on line 2 Content-type: text/html X-Powered-By: PHP/5.0.0RC2 <br /> <b>Fatal error</b>: Out of memory: cannot allocate 734941208 bytes! in <b>/usr/home/victor/foo.php</b> on line <b>2</b><br /> ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=29159&edit=1

« previous php.bugs (#62280) next »