一个有用的php函数:读取大文件最后几行记录

一个有用的php函数:读取大文件最后几行记录

老马来啦
2022-11-14 / 0 评论 / 正在检测是否收录...

通常我们需要读取一些日志文件,但有时日志很大,有时记录的时间很长,我们只想看最新的最近的记录,这就需要从最后几行读取。这个函数就比较有用了。

<?php
/**
 * 取文件最后$n行
 * @param string $file 文件路径
 * @param int $line 最后几行
 * @return mixed 成功则返回字符串
 */
function getLastLines($file,$line=1){
if(!$fp=fopen($file,'r')){
        echo "打开文件失败";
        return false;
    }
$pos = -2;//偏移量
$eof = " ";//行尾标识
$data = "";
while ($line > 0){//逐行遍历
while ($eof != "\n"){ //不是行尾
fseek($fp, $pos, SEEK_END);//fseek成功返回0,失败返回-1  
$eof = fgetc($fp);//读取一个字符并赋给行尾标识
$pos--;//向前偏移
}
$eof = " ";
$data .= fgets($fp);//读取一行
$line--;
}
fclose($fp);
return $data;
}

//测试代码
print_r(getLastLines("access.log",5));exit;

0

评论 (0)

取消