PHP:
Разбор HTML

Как это сделать:

В PHP есть несколько встроенных библиотек для разбора HTML, таких как DOMDocument. Вот простой пример использования:

<?php
$htmlString = '<!DOCTYPE html><html><body><h1>Привет, мир!</h1></body></html>';
$dom = new DOMDocument();
@$dom->loadHTML($htmlString); // '@' подавляет предупреждения, вызванные невалидными HTML-структурами
$h1Tags = $dom->getElementsByTagName('h1');

foreach ($h1Tags as $tag) {
    echo $tag->nodeValue; // Вывод: Привет, мир!
}
?>

Этот скрипт выводит: Привет, мир!

Подробнее

В начале эпохи веб-разработки мы получали HTML с помощью regex и ad-hoc решений, но это было неудобно. Появление DOMDocument и SimpleXMLElement, начиная с PHP 5, позволило корректно разбирать HTML и XML. Они позволяют навигировать и манипулировать HTML как древовидной структурой.

В наши дни, пока DOMDocument является вашим основным инструментом для внутреннего разбора, альтернативы вроде SimpleHTMLDom и phpQuery предоставляют дополнительные удобства и могут быть более понятны для тех, кто пришел из мира JavaScript/jQuery.

Внутри, DOMDocument преобразует HTML в DOM-дерево, упрощая доступ к конкретным элементам, изменение атрибутов, и даже модификацию документа “на лету”. Одна из крутых особенностей DOMDocument — его терпимость к плохому HTML, исправление его и позволяющее работать с реальными веб-страницами, которые не всегда идеально форматированы.

Смотрите также