使用php读取一段时间的大.log文件中间行的最佳方法

时间:2014-12-25 22:42:37

标签: php file readfile

我的日志文件超过10GB。文件的每一行都以日期和时间开头,如

2014-12-12 18:17:56 xxxxxxxxxxxxxxxxxxxxxxxxxx
2014-12-12 18:17:57 xxxxxxxxxxxxxxxxxxxxxxxxxx
2014-12-12 18:17:58 xxxxxxxxxxxxxxxxxxxxxxxxxx

2014-12-21 18:17:57 xxxxxxxxxxxxxxxxxxxxxxxxxx
2014-12-21 18:17:57 xxxxxxxxxxxxxxxxxxxxxxxxxx
2014-12-21 18:17:58 xxxxxxxxxxxxxxxxxxxxxxxxxx
2014-12-21 18:17:59 xxxxxxxxxxxxxxxxxxxxxxxxxx

我想阅读并查看一段时间的日志 例如从开始日期时间(2014-12-12 18:17:57)到结束日期时间(2014-12-21 18:17:58)

我可以将文件分解为数组并完成任务,但我需要内存使用量较少的最佳解决方案。

请帮帮我

提前致谢

1 个答案:

答案 0 :(得分:1)

加载到内存中的4096字节大小 例如:

<php    
$handle = fopen("/logfile.log", "r") or die("Couldn't get handle");
if ($handle) {
    while (!feof($handle)) {
        $buffer = fgets($handle, 4096);
        //Process buffer here..
    }
    fclose($handle);
}

?>

Reading very large files in PHP