>백엔드 개발 >PHP 튜토리얼 >PHP正则解析|提取|过滤标准的syslog日志文件内容,该怎么解决

PHP正则解析|提取|过滤标准的syslog日志文件内容,该怎么解决

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB원래의
2016-06-13 11:48:061023검색

PHP正则解析|提取|过滤标准的syslog日志文件内容
日志内容:
Dec 30 15:10:48 root my: 192.168.1.51 test 退出邮件管理系统
Dec 30 15:11:23 root my: 192.168.1.51 stella 退出邮件管理系统
...
通过正则逐行提取有用信息,并返回数组
...
解析后:
array(
 [0]=>array(
    [0]=>Dec 30 15:10:48,
    [1]=>root,
    [2]=>my,
    [3]=>192.168.1.51,
    [4]=>test,
    [5]=>退出邮件管理系统
  ),
 [1]=>array(
    [0]=>Dec 30 15:11:23,
    [1]=>root,
    [2]=>my,
    [3]=>192.168.1.51,
    [4]=>stella ,
    [5]=>退出邮件管理系统
  ),
);

求,解析过程
------解决方案--------------------
分析日志文件不宜使用正则表达式(效率太低)

$fn = 'sys.log';<br />$fp = fopen($fn, 'r');<br />while(! feof($fp)) {<br />  $r[] = fscanf($fp, "%s %s %s %s my: %s %s %s\n");<br />}<br />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] => 退出邮件管理系统
        )

)

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.