Получить последние 50 строк из текстового файла, используя php - PullRequest
4 голосов
/ 01 мая 2011

У меня есть текстовый файл, такой как файл журнала, и я хочу получить из него последние 50 строк.

Как я могу это сделать в PHP?

Ответы [ 4 ]

4 голосов
/ 01 мая 2011

Полагаю, вы также можете использовать "tail", если используете Linux.

$handle = popen("tail -50l YOUR_FILE_HERE 2>&1", 'r');
while(!feof($handle)) {
    $buffer = fgets($handle);
    echo "$buffer<br/>\n";
    ob_flush();
    flush();
}
pclose($handle);
2 голосов
/ 01 мая 2011
<?
$data = file('yourfile.txt');
$lines = implode("\r\n",array_slice($data,count($data)-51,50));
?>

Так просто, как это

2 голосов
/ 01 мая 2011

Есть некоторые решения в комментариях к функции fseek.

1 голос
/ 01 мая 2011

Я думаю, что вы можете использовать fopen, чтобы получить дескриптор, затем использовать размер файла, чтобы получить размер, и fseek, чтобы перейти к filesize-50. Тогда это всего лишь 50 символов, чтобы получить последние 50. Я думаю, что это было сделано раньше, если вы посмотрите руководство в fseek.

Здесь - решение в ручном вводе fseek. Просто измените -1 на линии fseek на -50.

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