php 获取日志文件的最后几行

作者: jaclon 分类: Linux 发布时间: 2013-08-27 17:20 ė 6没有评论

php获取日志文件的最后几行,类似于linux中tail命令

function tail ($filename, $n)
{
    $fp = fopen($filename, 'rb');
    $n = (int) $n;
    if ($n > 10)
        trigger_error("取文件倒数N行的时候,不能大于10行", E_USER_ERROR);
    if ($fp) {
        flock($fp, LOCK_SH);
        $i = - 2; // 从第二个字符开始,因为最后一个是"\n"
        fseek($fp, $i, SEEK_END);
        $buffer = array();
        while ($n >= 0) {
            fseek($fp, $i --, SEEK_END);
            if (fgetc($fp) == "\n") {
                $buffer[] = fgets($fp, 1024);
                $n --;
            }
        }
        flock($fp, LOCK_UN);
        fclose($fp);
        unset($tmp);
        return $buffer;
    } else {
        return false;
    }
}

本文出自 肥蕉博客@IT技术,热门话题,生活随笔,美图欣赏,转载时请注明出处及相应链接。

本文永久链接: http://www.bananawolf.com/html/2013/08/950.html

发表评论

电子邮件地址不会被公开。 必填项已用*标注

*

Ɣ回顶部