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