Mam poniższy kod do wyjścia duży plik, ale to przewróceniem ponieważ użycie pamięci PHP wydaje się rosnąć i rozwijać się jako plik jest czytany:Jak wyjście ogromny plik z PHP bez wyczerpaniu pamięci
<?php
// various header() calls etc.
$stream = fopen($tarfile,'r');
ob_end_flush();
while (!feof($stream)) {
$buf = fread($stream, 4096);
print $buf;
flush();
unset($buf);
$aa_usage = memory_get_usage(TRUE); // ← this keeps going up!
}
fclose($stream);
Pomyślałem, że dzięki kombinacji spłukiwania i unsetu dodatkowe użycie pamięci będzie ograniczone do bufora 4k, ale wyraźnie się mylę.
Dlaczego nie wystarczy użyć [readfile()] (http: //www.php .net/manual/en/function.readfile.php)? –
Spróbuj 'ob_flush();' i 'flush();' razem. – SparK
Jeśli chcesz go wyprowadzić, możesz użyć jego treści, możesz użyć 'require_once 'filename.php';' - http://php.net/manual/en/function.require-once.php – KDOT