
Simple HTML DOM – это PHP-библиотека, которая позволяет извлекать и изменять элементы HTML с помощью удобного синтаксиса. Она особенно полезна для парсинга страниц и автоматизации обработки контента без необходимости писать сложные регулярные выражения.
Для начала скачайте последнюю версию библиотеки с официального репозитория на GitHub. Файл simple_html_dom.php нужно разместить в корне вашего проекта или в отдельной папке, которую вы используете для подключаемых библиотек.
После этого подключите библиотеку к вашему скрипту с помощью функции require_once. Рекомендуется проверять наличие файла перед подключением, чтобы избежать ошибок выполнения, если файл по какой-либо причине отсутствует.
Следующий шаг – убедиться, что ваш сервер поддерживает PHP версии 5.6 или выше. Simple HTML DOM совместим с большинством современных версий PHP, однако использование устаревших версий может вызвать несовместимость функций или предупреждения об ошибках.
Как установить Simple HTML DOM на ваш сайт
-
Скачайте библиотеку с официального репозитория на SourceForge или через Composer:
composer require simple-html-dom/simple-html-dom
-
Если используете скачанный архив, распакуйте его в отдельную папку на сервере, например
/libs/simplehtmldom/. -
Подключите библиотеку в вашем PHP-файле:
<?php require_once 'libs/simplehtmldom/simple_html_dom.php'; ?>
-
Проверьте подключение, создав объект HTML DOM:
$html = file_get_html('https://example.com'); if($html) { echo 'Подключение успешно'; } else { echo 'Ошибка подключения'; } -
Для обновлений через Composer выполните команду:
composer update simple-html-dom/simple-html-dom
Рекомендации при установке:
- Используйте Composer для автоматического управления зависимостями.
- Соблюдайте структуру папок, чтобы избежать конфликтов с другими библиотеками.
- Проверяйте версию PHP: Simple HTML DOM поддерживает PHP 7 и выше.
- При работе с внешними URL убедитесь, что allow_url_fopen включен в конфигурации PHP.
Проверка совместимости сервера с Simple HTML DOM
Для корректной работы Simple HTML DOM сервер должен поддерживать PHP версии 5.6 и выше. Использование устаревших версий PHP может привести к ошибкам при парсинге и работе с DOM-элементами.
Необходимо убедиться, что на сервере включено расширение cURL. Simple HTML DOM часто использует cURL для получения внешнего HTML-кода. Проверку можно выполнить командой php -m | grep curl. Если расширение отсутствует, установите его через менеджер пакетов вашего сервера.
Также требуется активное расширение mbstring. Без него методы для обработки многоязычного текста и UTF-8 могут некорректно работать. Проверить наличие mbstring можно командой php -m | grep mbstring.
Рекомендуется включить директиву allow_url_fopen в файле php.ini, чтобы Simple HTML DOM мог загружать удаленные HTML-страницы через функции file_get_contents(). Значение должно быть On.
Для тестирования совместимости создайте простой PHP-скрипт:
<?php
$html = file_get_html('https://example.com');
echo $html->find('title', 0);
?>
Скачивание последней версии Simple HTML DOM

Перейдите на официальный репозиторий Simple HTML DOM на GitHub по ссылке https://github.com/simplehtmldom/simplehtmldom.
Нажмите кнопку «Code» и выберите «Download ZIP» для получения архива с последней стабильной версией библиотеки.
После загрузки распакуйте архив. Основной файл библиотеки – simple_html_dom.php. Именно его необходимо подключить в проекте для работы с HTML-документами.
Для установки через Composer выполните команду composer require simplehtmldom/simplehtmldom. Это обеспечит автоматическое обновление библиотеки до последних версий и совместимость с автозагрузкой PSR-4.
Проверяйте раздел «Releases» на GitHub для загрузки конкретных стабильных версий, если требуется контроль совместимости с вашим проектом.
После скачивания убедитесь, что файл simple_html_dom.php доступен для подключения через require_once или include в ваших скриптах.
Размещение библиотеки в каталоге вашего сайта

После загрузки архива Simple HTML DOM распакуйте его на локальном компьютере. Основной файл библиотеки – simple_html_dom.php. Рекомендуется создавать отдельную папку для библиотеки, чтобы избежать конфликтов с другими скриптами. Например, создайте каталог /vendor/simplehtmldom/ в корне сайта.
Скопируйте файл simple_html_dom.php в созданный каталог. Структура должна выглядеть так:
| Каталог | Содержимое |
|---|---|
| /vendor/simplehtmldom/ | simple_html_dom.php |
Для корректного подключения используйте относительный путь от скрипта, который будет обрабатывать HTML. Например, если ваш скрипт находится в /public_html/, подключение будет:
include_once '../vendor/simplehtmldom/simple_html_dom.php';
Если сайт использует систему автозагрузки классов, интегрируйте Simple HTML DOM в автозагрузчик, чтобы избежать ручного подключения. Для сайтов на PHP старше версии 7.4 рекомендуется проверять права на чтение файла – установите права 644 для simple_html_dom.php.
Следите за безопасностью: каталог библиотеки не должен быть доступен напрямую через веб, чтобы исключить возможность просмотра исходного кода. Размещайте его вне публичного корня или используйте файл .htaccess с директивой deny from all.
Подключение Simple HTML DOM к PHP-скриптам
Скачайте последнюю версию библиотеки с официального репозитория или через Composer командой composer require simplehtmldom/simplehtmldom.
Если используется ручная установка, разместите файл simple_html_dom.php в директории проекта, например в includes/.
Для подключения в скрипт используйте конструкцию require_once 'includes/simple_html_dom.php'; или, при Composer, автозагрузку require 'vendor/autoload.php';.
Создайте объект HTML DOM следующим образом: $html = file_get_html('https://example.com');. Метод file_get_html автоматически загружает и парсит содержимое указанного URL или локального файла.
Для работы с локальными файлами можно использовать $html = file_get_html('localfile.html');, при этом библиотека корректно обрабатывает UTF-8 и поддерживает относительные пути к ресурсам.
После подключения доступны методы поиска и модификации элементов: $html->find('div.classname'), $element->plaintext, $element->innertext. Для массовых изменений рекомендуется применять цикл foreach по результатам find().
Чтобы избежать утечек памяти при работе с большим количеством страниц, вызывайте $html->clear(); и unset($html); после завершения обработки.
Для дебага можно использовать echo $html; или функции print_r($html->find('selector')); для проверки структуры DOM и содержимого элементов.
Проверка работоспособности через простой пример

После установки Simple HTML DOM на сервер, важно убедиться, что библиотека функционирует корректно. Для этого создадим минимальный скрипт, который извлекает заголовки с тестовой страницы.
- Создайте файл
test.phpв корне вашего проекта. - Скопируйте в него следующий код:
<?php
include('simple_html_dom.php');
$html = file_get_html('https://example.com');
foreach($html->find('h1') as $element) {
echo $element->plaintext . "<br>";
}
?>
Объяснение кода:
include('simple_html_dom.php');– подключение библиотеки.file_get_html('URL');– загрузка HTML указанной страницы.find('h1')– поиск всех элементов <h1>.plaintext– получение текста внутри тега без HTML-разметки.
Запустите test.php через браузер или командную строку. Если библиотека работает, вы увидите текст заголовков <h1> с указанной страницы.
Дополнительно:
- Для проверки других тегов замените
'h1'на'p','a'или'div.classname'. - Если появляется ошибка «Class not found», проверьте правильность пути к
simple_html_dom.php. - Для ускорения отладки используйте локальный HTML-файл вместо внешнего URL.
Использование Simple HTML DOM для извлечения элементов HTML
Simple HTML DOM предоставляет удобные методы для поиска и извлечения элементов из HTML-кода. Для начала создайте объект DOM с помощью функции file_get_html(), передав ей URL страницы или путь к локальному файлу:
$html = file_get_html(‘https://example.com’);
Для извлечения элементов по тегу используйте метод find(). Например, чтобы получить все ссылки на странице:
$links = $html->find(‘a’);
Каждый элемент коллекции можно обработать циклом, извлекая текст или атрибуты:
foreach($links as $link) {
$href = $link->href;
 $text = $link->plaintext;
}
Simple HTML DOM поддерживает CSS-селекторы. Для получения элементов с определённым классом используйте точку перед именем класса:
$items = $html->find(‘.product-item’);
Чтобы выбрать элемент с конкретным идентификатором, применяйте решётку:
$header = $html->find(‘#main-header’, 0);
Метод find() позволяет ограничить количество результатов вторым параметром. Например, $firstLink = $html->find(‘a’, 0); вернёт только первую ссылку.
Для извлечения содержимого атрибутов используйте синтаксис объекта: $imgSrc = $html->find(‘img’, 0)->src;
Simple HTML DOM также позволяет комбинировать селекторы: $titles = $html->find(‘div.article h2’); извлечёт все заголовки внутри элементов с классом article.
Для удаления ненужных элементов применяйте метод clear(), что снижает нагрузку при обработке больших страниц:
$html->find(‘script’, 0)->clear();
Использование этих методов позволяет эффективно навигировать по структуре HTML, получать только необходимые данные и минимизировать избыточную обработку.
Обновление библиотеки и поддержка актуальной версии

Simple HTML DOM регулярно получает обновления для исправления ошибок и повышения совместимости с современными версиями PHP. Проверять актуальную версию рекомендуется на официальном репозитории GitHub: https://github.com/simplehtmldom/simplehtmldom.
Для обновления скачайте последнюю версию файла simple_html_dom.php и замените существующий на сервере. Перед заменой создайте резервную копию текущей версии, чтобы при необходимости откатиться без потери функционала.
После обновления проверьте совместимость с вашим проектом. Основное внимание уделите изменениям в методах find(), load() и обработке объектов DOM, так как новые версии могут изменять поведение этих функций.
Автоматизировать обновления можно через Composer, если библиотека установлена как пакет. Используйте команду composer update simplehtmldom/simplehtmldom, чтобы получать последние исправления безопасности и улучшения.
Регулярное обновление гарантирует корректное парсинг содержимого HTML, предотвращает ошибки при обработке нестандартных тегов и поддерживает совместимость с PHP 8 и выше.
Вопрос-ответ:
Что такое Simple HTML DOM и зачем он нужен?
Simple HTML DOM — это библиотека для PHP, которая позволяет удобно работать с HTML-кодом. Она помогает получать элементы страницы по тегам, классам, идентификаторам, а также изменять или удалять их. С её помощью можно быстро извлекать данные с внешних сайтов, парсить страницы или создавать скрипты для обработки HTML без необходимости вручную разбирать структуру кода.
Как скачать и подключить Simple HTML DOM к сайту?
Для начала нужно загрузить библиотеку с официального репозитория. Обычно это файл с расширением .php, который содержит весь код Simple HTML DOM. После скачивания его помещают в папку проекта, например, в директорию /libs. Чтобы использовать библиотеку, достаточно подключить её в вашем PHP-скрипте через require или include. После этого становятся доступными все функции для работы с HTML.
Можно ли использовать Simple HTML DOM с современными версиями PHP?
Да, библиотека совместима с большинством актуальных версий PHP, однако важно учитывать, что некоторые устаревшие функции могут быть отключены в новых версиях. Перед использованием рекомендуется проверить документацию на сайте разработчика и протестировать код на локальном сервере. В редких случаях может потребоваться небольшая корректировка скриптов для корректной работы.
Какие ошибки чаще всего возникают при установке Simple HTML DOM?
Наиболее распространённые ошибки связаны с неправильным путём к файлу библиотеки или с конфликтами с другими подключаемыми скриптами. Также иногда возникают проблемы при работе с большими HTML-документами, когда скрипт не успевает обработать все данные и выдаёт предупреждения об использовании памяти. Решается это проверкой пути подключения и настройкой лимитов памяти в PHP.
Можно ли использовать Simple HTML DOM для парсинга динамических сайтов?
Simple HTML DOM работает только с HTML-кодом, который уже загружен на сервер. Это значит, что контент, создаваемый JavaScript на стороне клиента, библиотека получить напрямую не сможет. Чтобы обрабатывать такие страницы, потребуется предварительно загрузить HTML через инструмент, способный выполнить скрипты на клиенте, например, через headless-браузер, а затем передать результат в Simple HTML DOM для обработки.
