因此,我尝试从日志文件中提取特定数据,例如日期、用户名和消息本身。
这是对文件外观的模拟:
[2017-03-14 11:48:22] Steve T: Hi!
[2017-03-14 11:49:01] Oscar: Hi! :D How are u doin?
[2017-03-14 11:50:24] Steve T: Im doing great :P我可以使用preg_match("/(\d{4})-(\d{2})-(\d{2}) (\d{2}):(\d{2}):(\d{2})/", $string, $matches)提取日期,但是如何使用正则表达式获取用户名和消息?
发布于 2018-04-14 21:02:31
另一种使用格式化字符串的方法。
$str = <<<'EOD'
[2017-03-14 11:48:22] Steve T: Hi!
[2017-03-14 11:49:01] Oscar: Hi! :D How are u doin?
[2017-03-14 11:50:24] Steve T: Im doing great :P
EOD;
$handle = fopen("data://text/plain,$str", 'r');
while ( false !== $line = fgets($handle) ) {
print_r(sscanf($line, "[%[^]]] %[^:]: %[^\1]"));
}https://stackoverflow.com/questions/49831558
复制相似问题