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, исправление его и позволяющее работать с реальными веб-страницами, которые не всегда идеально форматированы.