我想将apache的日志放到PHP数组中,以便将它们放到数据库中,我尝试了以下代码:
$log = file_get_contents("path/to/my/apache/access_log");
$regex = '/^(\S+) (\S+) (\S+) \[([^:]+):(\d+:\d+:\d+) ([^\]]+)\] \"(\S+) (.*?) (\S+)\" (\S+) (\S+) "([^"]*)" "([^"]*)"$/';
preg_match($regex, $log, $matches);
print_r($matches);它没有工作,数组是空的,但我不知道为什么。
提前感谢您的帮助!
发布于 2016-07-23 00:47:40
我能够将这条线与
/^(\S+) (\S+) (\S+) \[([^:]+):(\d+:\d+:\d+) ([^\]]+)\] \"(\S+) (.*?) (\S+)\" (\S+) (\S+)/gm注意结尾处的m(多行)和g(全局)标志。您可能还需要使用preg_match_all函数,或者更好地一次处理一行文件。
https://stackoverflow.com/questions/38531524
复制相似问题