PHP Simple HTML DOM Parser

Библиотека PHP Simple HTML DOM Parser обладает подробной документацией, множеством функций, простотой использования. Начать изучение парсинга на PHP новичкам рекомендуется именно с неё.

Главным недостатком является низкая скорость обработки. По этому показателю Simple HTML DOM проигрывает всем своим основным конкурентам. Впрочем, время получения документа по сетевым интернет-протоколам на порядки превышает продолжительность работы парсера и поэтому данный недостаток принципиален только при больших объёмах информации.

Пример использования:

Общие сведения

Описание, требования, особенности

  • Простая работа с HTML.
  • PHP5+.
  • Работа с невалидным HTML.
  • Поиск тегов с селекторами по аналогии с jQuery.
  • Извлечение содержимого в одну строку.

Загрузки, документация

Быстрый старт

Получение HTML-документа

Модификация HTML-элементов

Извлечение HTML-содержимого

Парсим Slashdot.Org

Создание HTML DOM объекта

Быстрый способ

ООП-способ

Поиск html-элементов

Основа

Часто используемое

Селекторы потомков

Вложенные селекторы

Фильтр атрибутов

[attribute]
Совпадения элементов, имеющих указанный атрибут.

[attribute=value]
Совпадения элементов, имеющих указанный атрибут равный определенному значению.

[attribute!=value]
Совпадения элементов, не имеющих указанного атрибута равного определенному значению.

[attribute^=value]
Совпадения элементов, имеющих указанный атрибут начинающийся с определенного значения.

[attribute$=value]
Совпадения элементов, имеющих указанный атрибут заканчивающийся определенным значением.

[attribute*=value]
Совпадения элементов, имеющих указанный атрибут содержащий определенное значение.

Текст, комментарии

Доступ к атрибутам

Получение, установка и удаление атрибутов

«Магические» атрибуты

$e->tag
Прочитать или записать название тега элемента.

$e->outertext
Прочитать или записать внешний HTML-текст элемента (т.е. вместе с внешним тегом).

$e->innertext
Прочитать или записать внутренний HTML-текст элемента (т.е. без внешнего тега).

$e->plaintext
Прочитать или записать текст элемента (без тегов HTML).

Трюки

Прогон по DOM-дереву

$e->children([int $index])
Возвращает N-ый объект-потомок, если индекс установлен, в противном случае возвращает массив потомков.

$e->parent()
Возвращает родительский элемент.

$e->first_child()
Возвращает первый вложенный элемент, или null если его найти не удалось.

$e->last_child()
Возвращает последний вложенный элемент, или null если его найти не удалось.

$e->next_sibling()
Возвращает следующий родственный элемент по дереву, или null если его найти не удалось.

$e->prev_sibling()
Возвращает предыдущий родственный элемент по дереву, или null если его найти не удалось.

API-справочник

Вспомогательные функции

object str_get_html (string $content)
Создает DOM объект из строки.

object file_get_html (string $filename)
Создает объект DOM из файла или URL.

Методы и свойства DOM

string plaintext
Возвращает текстовое содержимое извлекается из HTML (без тегов).

void clear()
Очистка памяти.

void load (string $content)
Загрузка содержимого из строки.

string save ([string $filename])
Дамп внутреннего дерева DOM в строку. Если $filename задан, результирующая строка сохраняется в файл.

void load_file (string $filename)
Загрузка содержимого из файла или URL.

void set_callback (string $function_name)
Установка функции обратного вызова.

mixed find (string $selector [, int $index])
Ищет CSS селекторы. Возвращает N-й элемент объект если index установлен, в противном случае возвращает массив объектов.

Методы и свойства элементов

string [attribute]
Чтение или запись значения атрибута элемента.

string tag
Чтение или запись имени тега элемента.

string outertext
Чтение или запись внешнего HTML-текста элемента (вместе с внешним тегом).

string innertext
Чтение или запись внутреннего HTML-текста элемента (без внешнего тега).

string plaintext
Чтение или запись текста элемента (без тегов HTML).

mixed find (string $selector [, int $index])
Ищет потомков по CSS селекторам. Возвращает N-й элемент объект если index установлен, в противном случае возвращает массив объектов.

Прогон по дереву DOM

mixed $e->children ([int $index])
Возвращает N-ый объект-потомок, если index установлен, в противном случае возвращает массив потомков.

element $e->parent()
Возвращает родительский элемент.

element $e->first_child()
Возвращает первый потомок элемента, или null если таковой не найден.

element $e->last_child()
Возвращает последний потомок элемента, или null если таковой не найден.

element $e->next_sibling()
Возвращает следующий родственный элемент, или null если таковой не найден.

element $e->prev_sibling()
Возвращает предыдущий родственный элемент, или null если таковой не найден.

Конвертация верблюжей нотации

FAQ

Как настроить поведение парсера?

Проблемы с поиском

Проблемы с хостингом

После proxy

Утечка памяти!

Пример парсера сообщений из twitter