如何从以下正则表达式PHP中获取值到我的变量中?

时间:2014-05-28 10:30:26

标签: php regex file

我需要解析一个大日志文件,以便从所有记录中获取ipadress,datetime,source和client。

正则表达式的以下链接有效:

http://regex101.com/r/cG9tY7

正则表达式:

(?<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分钟内与当前时间相比所生成记录的最新详细信息。

1 个答案:

答案 0 :(得分:0)

你试过preg_match吗?重要的是 '/和/'否则它将无效

preg_match('/(?P<name>\w+): (?P<digit>\d+)/', $str, $matches);