使用php从文本文件中获取最后50行


Get the last 50 lines from text file using php

我有一个文本文件,比如一个日志文件,我想从中得到最后50行。

如何在PHP中做到这一点?

我想你也可以使用"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);

对于fseek函数,在注释中有一些解决方案

<?
$data = file('yourfile.txt');
$lines = implode("'r'n",array_slice($data,count($data)-51,50));
?>

就这么简单

我认为你可以使用fopen来获取句柄,然后使用filesize来获取大小,然后使用fseek去filesize-50。然后只需要50个字符就可以得到最后的50个字符。如果你看一下fseek.

下的手册,我想以前已经这样做过了。

下面是fseek手动条目中的解决方案。只需将fseek行的-1更改为-50。