页面内的PHP访问DOM

时间:2019-02-05 23:55:40

标签: php html dom

假设您要使用PHP解析DOM。您可以使用DomDocument轻松实现这一目标。

但是,为此,您需要使用loadHTMLloadHTMLFile加载一些HTML,并为函数提供包含HTML的字符串(如果是{{ 1}}。

例如,如果您只想在页面内获取具有特定ID (在PHP中,不是JavaScript)的元素,怎么办?

2 个答案:

答案 0 :(得分:2)

如果您有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。

答案 1 :(得分:0)

可以使用getElementById字符串在DOMDocument实例上调用

id方法以获取元素。 1

$element = $testDOMDocument->getElementById('test-id');