(PHP 5, PHP 7, PHP 8)
DOMDocument::loadHTMLFile — Load HTML from a file
The function parses the HTML document in the file named
filename
. 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 filename
or an empty file is named, 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->loadHTMLFile("filename.html");
echo $doc->saveHTML();
?>