一、php SplFileInfo()类
//打开一个17G的日志文件,都不吃力,除了占cpu之外,内存占用不多,如果直接fopen根本打不开
//注:它是逐行读取的
foreach( glob( ngx_log. "/*.log" ) as $file ) {
$log = new SplFileObject($file);
foreach( $log as $line ){
//这里操作每一行($line)
}
}
二、利用shell_exec来执行grep返回搜索值
linux的grep来处理
if ($search['keyword'] != ''){
$file_dir = 'log/'.$path.'.log';
if (!is_file($file_dir))goto index;
$info = shell_exec("grep -A 3 ".$search['keyword'].' '.$file_dir);
if (empty($info))goto index;
$ret = explode(PHP_EOL,$info);
}