DOMDocument::loadHTML

(PHP 5, PHP 7, PHP 8)

DOMDocument::loadHTML Load HTML from a string

说明

public DOMDocument::loadHTML(string $source, int $options = 0): bool

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 解析器解析输入。这跟现代 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。

参数

source

The HTML string.

options

Bitwise OR of the libxml option constants.

返回值

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

错误/异常

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

参见