array ( 0 => 'index.php', 1 => 'PHP Manual', ), 'head' => array ( 0 => 'UTF-8', 1 => 'ru', ), 'this' => array ( 0 => 'domdocument.loadhtml.php', 1 => 'DOMDocument::loadHTML', ), 'up' => array ( 0 => 'class.domdocument.php', 1 => 'DOMDocument', ), 'prev' => array ( 0 => 'domdocument.load.php', 1 => 'DOMDocument::load', ), 'next' => array ( 0 => 'domdocument.loadhtmlfile.php', 1 => 'DOMDocument::loadHTMLFile', ), 'alternatives' => array ( ), 'source' => array ( 'lang' => 'ru', 'path' => 'reference/dom/domdocument/loadhtml.xml', ), ); $setup["toc"] = $TOC; $setup["toc_deprecated"] = $TOC_DEPRECATED; $setup["parents"] = $PARENTS; manual_setup($setup); ?>
(PHP 5, PHP 7, PHP 8)
DOMDocument::loadHTML — Загрузка HTML из строки
Функция разбирает HTML, содержащийся в строке source
.
В отличие от загрузки XML, HTML не обязан быть правильно построен для загрузки.
Эта функция анализирует входные данные, используя синтаксический анализатор HTML 4. В браузеры встроен синтаксический анализатор HTML 5, у которого другие правила анализа. Какая структура DOM будет сформирована — зависит от входных данных. Поэтому эту функцию нельзя использовать для безопасной очистки HTML.
Например, некоторые HTML-элементы будут неявно закрывать родительский элемент. Правила для автоматического закрытия родительских элементов у HTML 4 и HTML 5 разные, поэтому результирующая структура DOM, которую видит объект класса DOMDocument может отличаться от структуры DOM, которую видит веб-браузер, что дает возможность злоумышленнику сломать результирующий HTML.
Возвращает true
в случае успешного выполнения или false
, если возникла ошибка.
Если через аргумент source
передана пустая
строка, будет сгенерировано предупреждение.
Это предупреждение генерируется не libxml, поэтому оно не может быть
обработано функциями обработки ошибок libxml.
Несмотря на то что некорректный HTML обычно успешно загружается, эта функция
может генерировать ошибки уровня E_WARNING
при обнаружении
плохой разметки. Для обработки этих ошибок можно использовать
функции обработки
ошибок libxml.
Версия | Описание |
---|---|
8.3.0 | Теперь функция имеет предварительный логический (bool) тип возвращаемого значения. |
8.0.0 |
При статическом вызове функции теперь будет выбрасываться ошибка Error.
Ранее выдавалась ошибка уровня E_DEPRECATED .
|
Пример #1 Создание документа
<?php
$doc = new DOMDocument();
$doc->loadHTML("<html><body>Test<br></body></html>");
echo $doc->saveHTML();
?>