Heim >Backend-Entwicklung >PHP-Tutorial >问个服务器日志的正则怎么写
2013-06-23 04:33:51 W3SVC1539885 198.56.185.162 GET /robots.txt - 80 - 66.249.75.65 Mozilla/5.0+(compatible;+Googlebot/2.1;++http://www.google.com/bot.html) 404 0 2
最好举一个特定的例子,然后给出你期望的结果,你的问题表示看不懂
最好举一个特定的例子,然后给出你期望的结果,你的问题表示看不懂
代码就是特定的例子,我想取的值标注在下面,就是想写一句话正则匹配,用pregmatch这种生成一个数组然后我再干点其他的事。
我想这个日期的格式应该是固定的,你可以按空格将它们分割,例如
$log = '2013-06-23 04:33:51 W3SVC1539885 198.56.185.162 GET /robots.txt - 80 - 66.249.75.65 Mozilla/5.0+(compatible;+Googlebot/2.1;++http://www.google.com/bot.html) 404 0 2';var_dump( explode(' ', $log) ); /**array(14) { [0]=> string(10) "2013-06-23" [1]=> string(8) "04:33:51" [2]=> string(12) "W3SVC1539885" [3]=> string(14) "198.56.185.162" [4]=> string(3) "GET" [5]=> string(11) "/robots.txt" [6]=> string(1) "-" [7]=> string(2) "80" [8]=> string(1) "-" [9]=> string(12) "66.249.75.65" [10]=> string(72) "Mozilla/5.0+(compatible;+Googlebot/2.1;++http://www.google.com/bot.html)" [11]=> string(3) "404" [12]=> string(1) "0" [13]=> string(1) "2"}*/
我想这个日期的格式应该是固定的,你可以按空格将它们分割,例如
$log = '2013-06-23 04:33:51 W3SVC1539885 198.56.185.162 GET /robots.txt - 80 - 66.249.75.65 Mozilla/5.0+(compatible;+Googlebot/2.1;++http://www.google.com/bot.html) 404 0 2';var_dump( explode(' ', $log) ); /**array(14) { [0]=> string(10) "2013-06-23" [1]=> string(8) "04:33:51" [2]=> string(12) "W3SVC1539885" [3]=> string(14) "198.56.185.162" [4]=> string(3) "GET" [5]=> string(11) "/robots.txt" [6]=> string(1) "-" [7]=> string(2) "80" [8]=> string(1) "-" [9]=> string(12) "66.249.75.65" [10]=> string(72) "Mozilla/5.0+(compatible;+Googlebot/2.1;++http://www.google.com/bot.html)" [11]=> string(3) "404" [12]=> string(1) "0" [13]=> string(1) "2"}*/
$log = '2013-06-23 04:33:51 W3SVC1539885 198.56.185.162 GET /robots.txt - 80 - 66.249.75.65 Mozilla/5.0+(compatible;+Googlebot/2.1;++http://www.google.com/bot.html) 404 0 2';var_dump( explode(' ', $log) ); /**array(14) { [0]=> string(10) "2013-06-23" [1]=> string(8) "04:33:51" [2]=> string(12) "W3SVC1539885" [3]=> string(14) "198.56.185.162" [4]=> string(3) "GET" [5]=> string(11) "/robots.txt" [6]=> string(1) "-" [7]=> string(2) "80" [8]=> string(1) "-" [9]=> string(12) "66.249.75.65" [10]=> string(72) "Mozilla/5.0+(compatible;+Googlebot/2.1;++http://www.google.com/bot.html)" [11]=> string(3) "404" [12]=> string(1) "0" [13]=> string(1) "2"}*/
这个分不能浪费了
日志文件一般都很大
你需要在循环中逐行读取,拆分成数组