我需要解析一个大日志文件,以便从所有记录中获取ipadress,datetime,source和client。
正则表达式的以下链接有效:
正则表达式:
(?<ipAddress>.*?)\s-\s-\s\[(?<dateTime>.*?)\]\s\"GET\s(?<source>.*?)\"\s[0-9]+\s[0-9]+\s\"-\"\s\"(?<client>.*?)\"
也许这种格式不适合PHP?
我打开文件:
$filename = "access-streaming_small.log"
$file = popen("tac $filename", 'r');
如果我使用:
while ($line = fgets($file)) {
echo $line;
}
我得到完整的日志文件,显示确定。
我需要使用正则表达式处理它,以便从日志文件中包含的所有记录中获取ipadress,datetime,source和client的变量。 奖金任务:我需要过滤结果,以获得最近10分钟内与当前时间相比所生成记录的最新详细信息。
答案 0 :(得分:0)
你试过preg_match吗?重要的是 '/和/'否则它将无效
preg_match('/(?P<name>\w+): (?P<digit>\d+)/', $str, $matches);