DOMDocument::loadHTMLFile

(PHP 5, PHP 7, PHP 8)

DOMDocument::loadHTMLFile Load HTML from a file

说明

public DOMDocument::loadHTMLFile(string $filename, int $options = 0): bool

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 解析器解析输入。这跟现代 Web 浏览器使用的 HTML 5 的解析规则有所不同。根据输入,这可能会导致不同的 DOM 结构。因此,此函数不能安全地用于清理 HTML。

解析 HTML 时的行为取决于所使用的 libxml 版本,尤其是边缘条件和错误处理方面。对于符合 HTML5 规范的解析,请使用 PHP 8.4 中添加的 Dom\HTMLDocument::createFromString()Dom\HTMLDocument::createFromFile()

例如,某些 HTML 元素在遇到父元素时会默默关闭。HTML 4 和 HTML 5 中自动关闭父元素的规则不同,因此 DOMDocument 看到的最终 DOM 结构可能与 Web 浏览器看到的 DOM 结构不同,这可能使攻击者能够破坏最终的 HTML。

参数

filename

The path to the HTML file.

options

Bitwise OR of the libxml option constants.

返回值

成功时返回 true, 或者在失败时返回 false

错误/异常

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();
?>

参见