(PHP 5, PHP 7, PHP 8)
DOMDocument::loadHTML — Load HTML from a string
The function parses the HTML contained in the string source
.
Unlike loading XML, HTML does not have to be well-formed to load.
Ця функція аналізує вхідні дані за допомогою парсера HTML 4. Правила аналізу HTML 5, які використовують більш сучасні браузери — інакші. Залежно від вхідних даних, DOM-структура може бути зміненою у результаті. Отже, ця функція не придатна для безпечного очищення HTML-коду.
Повідінка функції під час парсину HTML може залежати від версії
libxml
, що використовується та частково від граничних
випадків і обробки помилок. Для парсингу згідно стандарту HTML 5
використовується метод
Dom\HTMLDocument::createFromString() або
Dom\HTMLDocument::createFromFile(), починаючи з PHP
8.4.
До прикладу, деякі елементи HTML неявно закривають батьківський елемент одразу після себе. Правила автоматичного закривання батьківських елементів в HTML 4 та HTML 5 відрізняються, і тому клас DOMDocument може бачити DOM-структури, що відрізняються від тих, що бачить браузер, дозволяючи зловмиснику поламати вихідний HTML-код.
If an empty string is passed as the source
,
a warning will be generated. This warning is not generated by libxml
and cannot be handled using libxml's error handling functions.
Хоча неправильний HTML має успішно
завантажитися, ця функція може генерувати E_WARNING
,
виявивши неправильну розмітку. Функції обробки помилок
libxml можна використовувати для обробки цих помилок.
Версія | Опис |
---|---|
8.3.0 | This function now has a tentative bool return type. |
8.0.0 |
Calling this function statically will
now throw an Error.
Previously, an E_DEPRECATED was raised.
|
Приклад #1 Creating a Document
<?php
$doc = new DOMDocument();
$doc->loadHTML("<html><body>Test<br></body></html>");
echo $doc->saveHTML();
?>