Собственно имеется файл со строками:
Цитата:[07:07:59.503] [SomeBody {123445}:123] [Something {3213}] [Here you are] [oO Kill:0 {123df}] ()
В этот файл постоянно(порой по 5-10 строк в секунду) сторонняя программа пишет подобные строки.
Задача прочитать, обработать и выдать результат проанализировав текст.
На данный момент чтение из файла реализовано как:
PHP:
скопировать код в буфер обмена
$handle = fopen($file,'r'); do { if($string) $data = ParsString($string); if(!empty($data)) { /* Добавляем текст */ } if(!$string) delay($config['timeout']); } while(true);
Нет, оно не падает и етк. Вопрос лишь в том, что я совсем не уверен в разумности такого метода безостановочного чтения. Неужели не существует метода проверить наличия новой строки не вызывая нагрузку, которая превзойдет постоянное повторное чтение?
Пробовал с filesize, но как результат увеличение времени обработки в 10 раз, что не приемлемо.
Feof в моем случае почему-то по достижению конца единожды попросту переставал работать.
Собственно 2 вопроса:
1) Может есть более разумный способ читать данные из файла?
2) Каким образом на ваш взгляд можно удобнее и быстрее разбирать указанную строку на составляющие?
Так же заметил особенность при такой реализации - оно порой попросту пропускает последн(ие)юю строку, если одновременно много записалось.(Отредактировано автором: 23 Апреля, 2012 - 12:29:02)
|