Как прочитать огромный файл и вывести его с помощью php - PullRequest
4 голосов
/ 17 сентября 2011

Я хочу обрабатывать большие файлы (1-2 Гб) с помощью php-скрипта и нашел два способа сделать это:

  1. с file_get_contents ()
  2. с readfile ()

и используйте эту реализацию:

header('Content-type: ' . $string);
header('Content-disposition: attachment; filename=' . $info['filename']);
$file = file_get_contents($filename);
echo $file;
or
readfile($filename);

Но вывод файла занимает слишком много времени.Я предполагаю, что весь файл должен быть прочитан до начала вывода.Это быстрее, когда указать точное местоположение файла.Затем он начинает вывод почти сразу.

Я ищу решение, которое транслирует файл или что-то в этом роде.Есть идеи?

Ответы [ 2 ]

6 голосов
/ 17 сентября 2011

Вы должны рассмотреть возможность использования mod_xsendfile

3 голосов
/ 06 января 2012
$handle = fopen($this->_path, 'rb');

while(!feof($handle))
{
    echo fread($handle, 4096);

    ob_flush();
    flush();    
}

fclose($handle);

из PHP Readfile () не работает для меня, и я не знаю, почему

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...