Вопрос № 85738: Здравствуйте, уважаемые эксперты!
Можно ли подсказать решение(если оно конечно есть) для такой задачи.
Имеется текстовый файл, состоящий из нескольких заголовков, и текста между ними. Я составил два шаблона регулярных выражений: один выб...
Вопрос № 85.738
Здравствуйте, уважаемые эксперты!
Можно ли подсказать решение(если оно конечно есть) для такой задачи.
Имеется текстовый файл, состоящий из нескольких заголовков, и текста между ними. Я составил два шаблона регулярных выражений: один выбирает заголовки, второй выбирает тексты.
Вопрос такой: как можно средствами php, вывести содержимое файла в соответствии с первоначальной последовательностью:
Заголовок
Текст...
Заголовок
Текст...и т.д.
С заголовками более менее понятно, они после прохода по файлу шаблоном регулярного выражения, представляют из себя простой массив типа: array("Заголовок1","Заголовок2",...); Сложнее с массивом текста, он примерно такой array(array("Строка1","Строка2",..),array("Строка1","Строка2",..));
Заранее благодарю за подсказку.
Отправлен: 06.05.2007, 18:21
Вопрос задал: Yugin (статус: Посетитель)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 2)
Отвечает: HookEst
Здравствуйте, Yugin!
Начиная с PHP 4.3.0 в preg_match_all доступен флаг PREG_OFFSET_CAPTURE, он позволяет получать смещение найденой подстроки от начала текста(структура $matches становится немного другая). И если сравнивать смещения заголовков и строк, мы можем определить когда необходимо выводить следующий заголовок.
см пример, немного не ловкий, но работает.
Успехов.
Приложение:
Ответ отправил: HookEst (статус: Студент)
Ответ отправлен: 09.05.2007, 09:14 Оценка за ответ: 5 Комментарий оценки: Большое спасибо. Все работает как надо.