Разрабатывая всё новые скрипты и реализуя всё новые задумки, мне пришлось столкнуться с такой проблемой, как парсинг внешних ресурсов. При этом, если для XML парсинга в PHP достаточно стандартных инструментов и способов, среди которых самым удобным я считаю использование класса Simple XML Element, то для парсинга HTML страниц стандартные средства либо недостаточно удобные, либо без нужного функционала.
Хотя и в стандартном наборе PHP есть класс DOM Document, но у него ограниченные возможности, посему приходилось самому дописывать и допиливать нужные функции. Мне не удавалось с помощью него нормально обработать спарсенную страницу.
Поэтому я начал искать внешние html парсеры и наткнулся на такую хорошую штуку, как класс Simple HTML DOM Parser, и был очень приятно удивлен. Это то, что я искал и что нужно было мне!
Этот проект распространяется в виде одного небольшого php-файлика, но функционал и полезность этого файлика стоит того, чтобы использовать его вместо предоставляемых php стандартных средств.
Подключить этот класс к своему скрипту очень просто, достаточно просто залить полученный файл в папку с проектом и добавить одну строчку в свой проект, например в файл index.php
. Нужная строчка выглядит так:
<?php include('simple_html_dom.php'); ?>
Описывать какие там есть функции и как ими пользоваться ни к чему, потому как разработчики этого чуда подготовили для пользователей компактный, но в то же время информативный, мануальчик, где описаны все функции, атрибуты и возможности класса Simple HTML DOM Parser как в общем виде, так и на примере.
Я уже нашел для этого класса много применений, поэтому думаю применение для этой штучки найдете и вы! 😉
Для новичков в сайтостроении и людей, желающих этому научится, про создание своего сайта предлагает почитать вам Seoded
С благими намерениями Сбербанк предполагает, что социальная карта Сбербанка поможет избежать очередей и ненужных расходов. Может это так?
2 комментариев
Парсит невалидный html? к примеру без закрытых тегов?
@ LeoK, честно говоря, даже никогда не обращал внимание валидный html я парсю или нет. Я не проверял, но по логике вещей и по сути функции, он должен парсить любой код, не смотря на его валидность, как есть. Потому как, если я правильно понял суть этого парсера, загрузка страниц основывается на функции file_get_contents().