首页 > 解决方案 > PHP 访问页面内的 DOM

问题描述

假设您想用 PHP 解析 DOM。您可以使用DomDocument.

但是,为此,您需要使用loadHTMLor加载一些 HTML,loadHTMLFile并为函数提供包含 HTML 的字符串(或loadHTMLFile).

例如,如果您只想在您的页面中获取具有特定 ID 的元素(在 PHP 中,而不是 JavaScript),您可以做什么?

标签: phphtmldom

解决方案


如果您有 PHP 代码生成页面,您可以使用输出缓冲区在内存中生成页面,编辑生成的页面,然后将其刷新到浏览器。您只能在浏览器获取 DOM之前更改它。

您可以执行以下操作:

ob_start(); // Should be called before any output is generated

// ... PHP code that outputs HTML ...

$generated_html = ob_get_clean(); // Store generated HTML to string

// Load and manipulate HTML
$doc = new DOMDocument();
$doc->loadHTML($generated_html);

// ... Manipulate the generated HTML ...

echo $doc->saveHTML(); // echo the modified HTML

但是,由于正在生成 HTML,因此在生成 HTML 之前更改您需要更改的任何内容以减少处理时间会更有意义。

如果您想更改已经在浏览器中显示的页面的 HTML,您将需要另一种方式(例如 JS/AJAX),因为此时 PHP 可能无法访问 DOM。


推荐阅读