У меня есть файл журнала в следующем формате:
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") нарушает анализ оставшейся части строки.Я проверил документацию PHP для scanf (как предложено fscanf), и я не увидел ничего, что упоминало бы обойти левый квадрат.
Любые предложения о том, как получить 4-й и 5-й элементы ввыглядеть как "пользователь" и "сообщение" соответственно?