Simple Html Dom - это библиотека для PHP, позволяющая без особых трудностей получить и обработать html документы. В основные преимущества этой библиотеки входит то, что она способна работать даже с невалидным Html-документом, где могут попадаться незакрытые теги и прочие ошибки. Методы взаимодействия с DOM похожи на методы в библиотеке Jquery!
Однако, данная библиотека идеально подходит лишь для небольших документов. Для обработки документов с большим объемом данных лучше всего использовать XPath.
Начало работы
- Качаем последнюю версию отсюда - ссылка
- Распаковываем архив в директорию с проектом;
- Подключаем основной файл (
simple_html_dom.php
).
<?php
require_once('simple_html_dom.php');
Функции и свойства для работы
str_get_html
- формируем объект из строки;
$html = str_get_html('<html><body>Hello World!</body></html>');
file_get_html
- формирует объект обращаясь к файлу с Html или к адресу.
$html = file_get_html('http://www.yandex.ru/');
$html = file_get_html('path/to/file/index.html');
$html->innertext
- Весь текст страницы
$data->find
- основной метод для работы с селекторами и тегами
$html->find('div'); //Поиск всех дивов
$html->find('#preview'); //Поиск элементов по id
$html->find('.myclass'); //Поиск элементов по class
$html->find('#preview div.myclass'); //поиск по комбинированным селекторам
$html->find('img[width]'); //поиск изображений с заданным атрибутом width
$html->find('img[width=400px]'); //поиск изображений с шириной 400px
$html->find('img[class=active myclass]'); //поиск изображений с несколькими классами
$html->find('a, img, br, span'); //поиск по нескольким тегам
$html->find('ul.myclass li'); //поиск всех потомков li в ul с классом myclass
Примеры
Поиск элементов с комбинированными селекторами
$elements = $html->find('#preview div.myclass');
if(count($elements)) {
foreach($elements as $el) {
echo $el->innertext;
}
}