php - PHP 访问页面内的 DOM
问题描述
假设您想用 PHP 解析 DOM。您可以使用DomDocument
.
但是,为此,您需要使用loadHTML
or加载一些 HTML,loadHTMLFile
并为函数提供包含 HTML 的字符串(或loadHTMLFile)
.
例如,如果您只想在您的页面中获取具有特定 ID 的元素(在 PHP 中,而不是 JavaScript),您可以做什么?
解决方案
如果您有 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。
推荐阅读
- c# - 从以编程方式生成的子元素访问放置在父元素中的 InkToolbar
- node.js - 如何在 Node js 中为 Soap 请求添加连接保持活动属性
- permissions - 如何在 gitlab wiki 中启用对公共的写访问权限
- javascript - 在 useEffect 中有 2 个异步等待函数可以吗?
- machine-learning - 决策树 - 通过 Graphviz 错误导出图像
- git - 如何将 git hook 脚本传递给远程存储库和我的队友
- ruby-on-rails - 使用 Github 操作测试生产 Rails 服务器启动
- php - 从左连接中提取特定字段,流明?
- java - tomcat access-logs中的MDC相关内容
- ithit-webdav-server - ITHitWebDAV AJAX 库 CORS 错误 401 PROPFIND