Доброго времени всем!
Ребят, помогите разобраться как реализовать. Я новичек и для меня это сложное задание. Пол дня просидел с книгами и искал по форумам, и мануалам.
Форум обыскал, не нашел похожего.
Есть входной файл с логами: log.txt
В нем записаны разные события.
Нужно найти события alert1 и записать их в другой файл.
Файл имеет такую структуру:
alert1
рандомный текст
рандомный текст
рандомный текст
alert2
рандомный текст
рандомный текст
рандомный текст
alert1
рандомный текст
рандомный текст
рандомный текст
рандомный текст
рандомный текст
рандомный текст
Количество строк в alert1 может быть любое. разделителем между последним "рандомный текст" и следующим блоком инфы служат 3 переноса строки (CRLF CRLF CRLF)
Нужно выбрать все alert1 начиная со слова alert1 и заканчивая тремя CRLF, и записать их в log_result.txt
alert1 событий в файле может быть и 100 и 1000.
Сделал чтение файла, основная проблема с составлением правильного регулярного выражения и записью в другой файл.
Буду очень благодарен за помощь! Заранее спасибо!
Готов учиться на ваших примерах.
1. Alex2019 - 06 Сентября, 2019 - 17:51:06 - перейти к сообщению
2. LIME - 06 Сентября, 2019 - 19:44:04 - перейти к сообщению
Не надо регулярное выражение. Читай построчно.
https://www.php.net/manual/ru/function.fgets.php
Если alert1 то переводи в состояние записи. То есть какойто флаг себе выставь. И значит все следующие строки пишем пока не попадется пустая. Тогда проверяем что еще 2 дальше есть и снимаем флаг.
Можно в буфер накапливать и писать при снятии флага. Так запись получится быстрее если на hdd
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]
Спасибо. попробую!
(Добавление)
Всем спасибо! Вопрос решен!
Вот такой формат log-файла
(Добавление)
[quote=LIME][/quote]
Спасибо. попробую!
(Добавление)
Всем спасибо! Вопрос решен!