(PHP 8 >= 8.4.0)
Dom\HTMLDocument::createFromString — Разбирает содержимое строки как HTML-документ
$source, int $options = 0, ? string $overrideEncoding = null ): Dom\HTMLDocument Разбирает HTML-документ из строки в соответствии со стандартом.
sourceoptionsOR)
констант опций libxml.
Разрешается также передавать константу Dom\HTML_NO_DEFAULT_NS ,
чтобы отключить пространства имён HTML-документа и элемента шаблона.
Перед передачей константы лучше убедиться, что последствия этого понятны.
overrideEncodingМетод возвращает разобранный документ как экземпляр класса Dom\HTMLDocument .
options содержит недопустимые параметры.
overrideEncoding передали неизвестную кодировку.
Пример #1 Пример разбора строки методом Dom\HTMLDocument::createFromString()
Пример разбирает образец строки.
<?php
$dom = Dom\HTMLDocument::createFromString(<<<'HTML'
<!DOCTYPE html>
<html>
<body>
<p>Привет, мир!</p>
</body>
</html>
HTML);
echo $dom->saveHtml();
?>Результат выполнения приведённого примера:
<!DOCTYPE html><html><head></head><body> <p>Привет, мир!</p> </body></html>
Замечание: Метод не считает пробельные символы в тегах
htmlиheadсущественными, поэтому иногда такие символы теряются при форматировании.
To load HTML without doctype, html, body elements use `LIBXML_HTML_NOIMPLIED` flag.
<?php
$html = <<<EOT
<div class="row">
<div class="col"><h1 id="heading" class="col1-heading">Hello</h1></div>
<div class="col"><p class="paragraph">Hello world.</p>
</div>
EOT;
$doc = \DOM\HTMLDocument::createFromString($html, LIBXML_HTML_NOIMPLIED);
echo htmlspecialchars($doc->saveHTML(), ENT_QUOTES);
?>