我有以下格式的日志文件:scanf的格式问题
INFO 2011-03-09 10:26:15,270 [user] message
我想用PHP解析日志文件:
// assume file exists and all that
$handle = fopen("log_file.txt", "r");
while ($line_data = fscanf($handle, "%s %s %s [%s] %s\n")) {
var_dump($line_data);
}
fclose($handle);
当我运行这段代码,我得到:
[0]=>
array(5) {
[0]=> string(4) "INFO"
[1]=> string(10) "2011-03-09"
[2]=> string(12) "10:26:15,270"
[3]=> string(5) "user]"
[4]=> NULL
}
// snip
格式化字符串(“%s%s%s [%s]%s”)中的右括号显示正在破坏该行的其余部分以免被解析。我检查了scanf的PHP文档(如fscanf所建议的),并且我没有看到任何提及必须转义左括号的内容。
关于如何让第四和第五个元素分别看起来像“用户”和“消息”的任何建议?
我认为它在的fscanf一个bug ... – n00b 2011-03-09 16:10:07