# 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.

警告

使用 Dom\HTMLDocument 来解析和处理现代 HTML 而不是 DOMDocument。

此函数使用 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();
?>`

### 参见

- DOMDocument::loadHTMLFile() - Load HTML from a file
- DOMDocument::saveHTML() - Dumps the internal document into a string using HTML formatting
- DOMDocument::saveHTMLFile() - Dumps the internal document into a file using HTML formatting

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open