Задать вопрос
@sergey_zhuravlev_89

Парсер HTML на PHP без регулярных выражений с ноля?

Прежде всего, не нужно мне кидать ссылки на расширения PHP и уж тем более на тормозную либу Simple html dom и прочие!
Я не собираюсь городить велосипеды, а только хочу получить навыки и опыт путем реализации чего-то относительно простого.
Многие утверждают, что писать сложные парсеры на регэкспах - извращение. Я полностью согласен с теми людьми. И поэтому хочу понять как, к примеру, браузере анализируют код html, какие алгоритмы испольщуют и т.д. не на регэкспах ведь они это делают.

Какая последовательность анализа html страницы, средствами php, должна быть осущестлена? К примеру, получили мы страницу, очистили ее от всякого мусора, такого как лишние пробелы, переносы.... А дальше что делать? Страницы могут быть огромными и не хотелось бы держать их в памяти. Представим, что полученная страница валидная и мы записали ее в файл и т.к. само по себе содержимое уже имеет иерархию (html теги) то по какому алгоритму осуществлять поиск того или иного тега и все его содержимое? Или все это как то по другому должно работать? Если да, то как? Какие подходы и алгоритмы применять, куда копать?

Понимаю, что php плохо работает с бинарными файлами, но думаю с такой задачей он должен справиться.
Буду благодарен за всякий совет.
  • Вопрос задан
  • 1266 просмотров
Подписаться 1 Оценить Комментировать
Ответ пользователя Максим Тимофеев К ответам на вопрос (3)
webinar
@webinar Куратор тега PHP
Учим yii: https://youtu.be/-WRMlGHLgRg
как, к примеру, браузере анализируют код html, какие алгоритмы испольщуют и т.д. не на регэкспах ведь они это делают.
Конечно же нет. И конечно же не на php это делают. Но это лирика, все что Вам надо - уметь читать и эта ссылка:
https://habrahabr.ru/post/174057/

ПС: Боюсь что разобравшись глубоко в теме, вы напишите все тот же SimpleHtmlDom. Громоздкий и тормозной. Если посмотреть на современные браузеры - увидите, что они кушают намного больше оперативки, чем замечательная SimpleHtmlDom.
Ответ написан