首页 > 其他 > 详细

遍历日志文件并打印

时间:2017-03-10 12:48:15      阅读:121      评论:0      收藏:0      [点我收藏+]

<?php
error_reporting(E_ALL);
ini_set(‘display_errors‘, 1);

function load($file)
{
//No.1
//开始写代码,读取日志文件
$file = fopen($file,‘r‘);
$contents = array();
while(!feof($file))
{
$contents[] = fgets($file);
}
return $contents;
}

function eliminate($lines)
{
$new = array();
foreach($lines as $line)
{
list($dul,) = explode("\t", $line, 2);

if(isset($new[$dul]))
{
$line = str_replace($dul,"\t",$line);
}
$new[$dul][] = $line;
}
return $new;
}

function qSort($array)
{
$length = count($array);
if(count($array)<=1)
return $array;
//No.2
//开始写代码,对时间戳进行从小到大排序 快速排序
$left_array=$right_array=array();
//使用for循环进行遍历,把第一个元素当做比较的对象
for($i=1;$i<$length;$i++)
{
//判断当前元素的大小
if($array[$i]<$array[0]){
$left_array[]=$array[$i];
}else{
$right_array[]=$array[$i];
}
}
//递归调用
$middle=$array[0];

//end_code
return array_merge(qSort($left_array),array($middle),qSort($right_array));
}

$newFile = ‘‘;
$data = eliminate(load(‘aa.log‘));
//No.3
//开始写代码,调用函数,将日志中的数据排序,并将重新排好序的数据写入文件
$keys = array_keys($data);
//sort($keys); //其实不用快速排序 直接将键值sort即可
$keys = qSort($keys);
$newsFile = array();
foreach($keys as $value)
{
$newsFile[] = implode(‘\n‘, $data[$value]);
}
$newsFile = implode(‘ ‘, $newsFile);
//end_code
file_put_contents(‘bb.dat‘,$newsFile);
?>

 

面试题:考察 快速排序,文件的用法

当时时间的限制没做出来,后来花了一个小时终于弄出来。看来我还是很笨的。。。加油。。。找工作。。。

遍历日志文件并打印

原文:http://www.cnblogs.com/sxiangyues/p/6529924.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!