[PHP] Парсинг без регулярных выражений

Автор: urmaul
06.02.2013 16:25

Нередко нам приходится что-то парсить. Взять текст и вырезать из него какие-то части. В большинстве случаев для этого используется воистину мощнейший инструмент - регулярные выражения. Но используются они уж слишком часто: иногда правила для парсинга слишком просты и регулярки наоборот мешают: усложняют интерфейс и работают гораздо дольше, чем могли бы (хотя, это обычно не заметно).

Мне часто приходится парсить html-страницы и однажды я устал писать регулярки в стиле "~<title>(.*)</title>~". В большинстве случаев нам нужно всего лишь добыть текст, заключенный между двумя определенными строками. И я написал функцию, которая находит такие тексты при поможи обычных strpos.

Ниже представлены две функции: первая находит первое вхождение такой строки, вторая находит все вхождения.

Они получают одинаковые аргументы:

  • $text - текст, который мы парсим.
  • $leftBorder - левая граница.
  • $rightBorder - правая граница. В первую функцию можно передавать также null - тогда правой границей будет конец текста.

Первая функция возвращает найденную строку или false, если строка не найдена. Вторая возвращает массив строк.

Обновлено 03.01.2014 14:11

 

Добавить комментарий


Защитный код
Обновить