分析日志文件不宜使用正则表达式(效率太低)$fn = 'sys.log';
$fp = fopen($fn, 'r');
while(! feof($fp)) {
$r[] = fscanf($fp, "%s %s %s %s my: %s %s %s\n");
}
print_r($r);Array
(
[0] => Array
(
[0] => Dec
[1] => 30
[2] => 15:10:48
[3] => root
[4] => 192.168.1.51
[5] => test
[6] => 退出邮件管理系统
) [1] => Array
(
[0] => Dec
[1] => 30
[2] => 15:11:23
[3] => root
[4] => 192.168.1.51
[5] => stella
[6] => 退出邮件管理系统
))
$fp = fopen($fn, 'r');
while(! feof($fp)) {
$r[] = fscanf($fp, "%s %s %s %s my: %s %s %s\n");
}
print_r($r);Array
(
[0] => Array
(
[0] => Dec
[1] => 30
[2] => 15:10:48
[3] => root
[4] => 192.168.1.51
[5] => test
[6] => 退出邮件管理系统
) [1] => Array
(
[0] => Dec
[1] => 30
[2] => 15:11:23
[3] => root
[4] => 192.168.1.51
[5] => stella
[6] => 退出邮件管理系统
))
是不是只要有一行的格式和规定的不相符,就为空呢?
如:
Dec 30 15:10:48 root my: 192.168.1.51 test 退出邮件管理系统
Dec 30 15:11:23 root my: 192.168.1.51 退出邮件管理系统会得到:
Array
(
[0] => Array
(
[0] => Dec
[1] => 30
[2] => 15:10:48
[3] => root
[4] =>
[5] =>
[6] =>
) [1] => Array
(
[0] => Dec
[1] => 30
[2] => 15:11:23
[3] => root
[4] =>
[5] =>
[6] =>
))