Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Поиск в файле строк и запись их в другой файл
Форумы портала PHP.SU » » Вопросы новичков » Поиск в файле строк и запись их в другой файл

Страниц (1): [1]
 

1. Alex2019 - 06 Сентября, 2019 - 17:51:06 - перейти к сообщению
Доброго времени всем!

Ребят, помогите разобраться как реализовать. Я новичек и для меня это сложное задание. Пол дня просидел с книгами и искал по форумам, и мануалам.
Форум обыскал, не нашел похожего.

Есть входной файл с логами: log.txt

В нем записаны разные события.
Нужно найти события alert1 и записать их в другой файл.

Файл имеет такую структуру:



alert1
рандомный текст
рандомный текст
рандомный текст


alert2
рандомный текст
рандомный текст
рандомный текст


alert1
рандомный текст
рандомный текст
рандомный текст
рандомный текст
рандомный текст
рандомный текст

Количество строк в alert1 может быть любое. разделителем между последним "рандомный текст" и следующим блоком инфы служат 3 переноса строки (CRLF CRLF CRLF)
Нужно выбрать все alert1 начиная со слова alert1 и заканчивая тремя CRLF, и записать их в log_result.txt

alert1 событий в файле может быть и 100 и 1000.

Сделал чтение файла, основная проблема с составлением правильного регулярного выражения и записью в другой файл.
Буду очень благодарен за помощь! Заранее спасибо!
Готов учиться на ваших примерах.
2. LIME - 06 Сентября, 2019 - 19:44:04 - перейти к сообщению
Не надо регулярное выражение. Читай построчно.
https://www.php.net/manual/ru/function.fgets.php
Если alert1 то переводи в состояние записи. То есть какойто флаг себе выставь. И значит все следующие строки пишем пока не попадется пустая. Тогда проверяем что еще 2 дальше есть и снимаем флаг.
Можно в буфер накапливать и писать при снятии флага. Так запись получится быстрее если на hdd
3. Alex2019 - 06 Сентября, 2019 - 19:55:09 - перейти к сообщению
https://pastebin[dot]com/xn3M1s5L

Вот такой формат log-файла
(Добавление)
[quote=LIME][/quote]
Спасибо. попробую!
(Добавление)
Всем спасибо! Вопрос решен!

 

Powered by ExBB FM 1.0 RC1