У меня есть текстовый файл, такой как файл журнала, и я хочу получить последние 50 строк.
Как я могу это сделать, в PHP?
Я думаю, вы также можете использовать «хвост», если вы используете 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);
В комментариях для функции fseek
есть некоторые решения .
<? $data = file('yourfile.txt'); $lines = implode("\r\n",array_slice($data,count($data)-51,50)); ?>
Так просто, как это
Я думаю, вы можете использовать fopen для получения дескриптора, а затем использовать файлize, чтобы получить размер и fseek, чтобы перейти к файловому размеру-50. Тогда это всего лишь пятерка из 50 персонажей, чтобы получить последние 50. Я предполагаю, что это было сделано раньше, если вы посмотрите на руководство под fseek.
Вот решение в руководстве пользователя fseek. Просто измените -1 на строку fseek на -50.