PHP,如何只从文件中读取几行

时间:2013-06-11 23:17:43

标签: php fopen fclose

这是插入文件,它一次放1行。 我想只阅读最后10行,例如。

$file = SITE_ROOT."logs/log.txt";

        if ($handle = fopen($file, 'a+b')) {
            $content = Session::get('username') . " has logged out on - " . datetime_to_text("now") . "\r\n";
            fwrite($handle, $content);
            fclose($handle);
        } else {
            echo 'Culd not open file for writing.';
        }

这就是我读它们的方式,全部读出来。

$file = SITE_ROOT . "logs/log.txt";
                                $content = "";
                                if ($handle = fopen($file, 'r')) {
                                    while (!feof($handle)) {
                                        $content .= '<li><a href="#">' . fgets($handle) . '</a></li>';
                                        echo count($handle);
                                    }
                                    fclose($handle);
                                }

                                echo nl2br($content);

如何只读10?

完成后,我找到了我正在寻找的答案。

Thx, i found useffull this one.



$file = SITE_ROOT . "logs/log.txt";
$data = array_slice(file($file), -10);
$data1 = file($file);
foreach ($data as $line) {
echo '<li><a href="#">'. nl2br($line) . '</a></li>';
}

1 个答案:

答案 0 :(得分:0)

 while (!feof($handle)) {

实际上是&#34;阅读&#34;该行将其改为此

$i=0;
$max=10;
while (!feof($handle) && ($i++ < $max)) {

设置计数器并计数直到达到$ max。 对不起,我错过了最后10个。只见过代码块之间的10行

How to read only 5 last line of the text file in PHP?

为最后x行提供了很好的信息