Bug #61636 [Opn->Fbk]: readfile() resp. fpassthru() try to allocate complete file into memory
| From: | pajoye@php.net | Date: | Mon, 15 Apr 2013 04:21:20 +0000 |
| Subject: | Bug #61636 [Opn->Fbk]: readfile() resp. fpassthru() try to allocate complete file into memory | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-178476@lists.php.net to get a copy of this message | ||
Edit report at https://bugs.php.net/bug.php?id=61636&edit=1
ID: 61636
Updated by: pajoye@php.net
Reported by: kontrollfreak at arcor dot de
Summary: readfile() resp. fpassthru() try to allocate
complete file into memory
-Status: Open
+Status: Feedback
Type: Bug
Package: Apache related
Operating System: Windows XP SP3
PHP Version: master-Git-2012-04-05 (snap)
Block user comment: N
Private report: N
New Comment:
And you still got the out of memory error?
Previous Comments:
------------------------------------------------------------------------
[2013-04-14 13:59:28] kontrollfreak at arcor dot de
In reply to [2013-04-14 12:55 UTC] pajoye@php.net:
During the test output buffering was disabled by the following snippet.
Disable output buffering:
-------------------------
<?php
while (ob_get_level())
ob_end_flush();
?>
------------------------------------------------------------------------
[2013-04-14 12:55:29] pajoye@php.net
Be sure to disable output buffering, see http://www.php.net/readfile
------------------------------------------------------------------------
[2013-04-14 11:18:29] kontrollfreak at arcor dot de
(Windows only)
kv3981 at gmail dot com's solution works as long as the transfer does not take longer than
max_execution_time.
------------------------------------------------------------------------
[2013-02-10 20:00:53] fredericg_99 at yahoo dot fr
I can confirm that the problem exists on PHP 5.3.16.
However, the problem does not appear for every files, but once it appears on a file, it applies for
every attempts on that file (and not necessarily for the others).
The proposed workaround works.
------------------------------------------------------------------------
[2012-11-09 23:52:20] kv3981 at gmail dot com
Same issue on
--------------
- Debian Squeeze 6.0.6
- PHP 5.3.3-7+squeeze14
- Default php.ini, with memory_limit 128M 128M
Workaround
-----------
<?php
// Reads large file, fixes: https://bugs.php.net/bug.php?id=61636
function readlargefile($fullfile) {
$fp = fopen($fullfile, 'rb');
if ($fp) {
while (!feof($fp)) {
print(fread($fp, 2097152));
}
fclose($fp);
}
}
?>
------------------------------------------------------------------------
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
https://bugs.php.net/bug.php?id=61636
--
Edit this bug report at https://bugs.php.net/bug.php?id=61636&edit=1