PHP DOM Manipulation 有啥用?
Posted
技术标签:
【中文标题】PHP DOM Manipulation 有啥用?【英文标题】:What is the use of PHP DOM Manipulation?PHP DOM Manipulation 有什么用? 【发布时间】:2011-03-15 06:10:36 【问题描述】:对不起,如果这个问题太笼统了,但我想知道与 javascript DOM 操作相比,php DOM 操作有什么用?
我知道主要是用来解析一些html,或者xml,但是还有其他应用好用吗?
【问题讨论】:
【参考方案1】:DOM is a language agnostic interface defined by the W3C.:
文档对象模型是一个平台和语言中立的接口,它允许程序和脚本动态访问和更新文档的内容、结构和样式。可以进一步处理该文档,并且可以将该处理的结果合并回呈现的页面中。
DOM 在 PHP 中的用途与在 JavaScript 中相同。但是由于在 JavaScript 中使用 DOM 通常发生在浏览器中,并且对 DOM 有立即可见的影响,因此对您来说可能会有所不同。当然,正因为如此,用 PHP DOM 实现动画是没有意义的。但请记住,动画只不过是动态访问和更新内容。
查看链接了解更多信息。
【讨论】:
【参考方案2】:一般来说,Javascript 在客户端,在网络浏览器中执行。 另一方面,PHP 是在服务器端执行的。
很多时候,您必须在服务器上操作 XML 文档;在这些情况下,您将只有 PHP,并且无法依赖浏览器/Javascript。
除了运行的地方,PHP 和 Javascript 在 DOM 操作方面没有太大区别——这是 DOM 的一个优点:它非常标准化。
例如,您可能希望为网站上的最新文章生成 ATOM 或 RSS 提要(它们是 XML);这将在服务器端完成。
另一个例子是一个批处理脚本,它将处理银行每晚发送的 XML 文件,其中包含最后一天的所有付款;对于这样的批处理,绝对没有浏览器。
【讨论】:
【参考方案3】:有几个你可以去:
最好/最简单的是 PHP Simple Dom 可在 http://simplehtmldom.sourceforge.net/
用 PHP5+ 编写的 HTML DOM 解析器 让您以非常灵活的方式操作 HTML 简单的方法!需要 PHP 5+。支持 无效的 HTML。在 HTML 中查找标签 像 jQuery 一样带有选择器的页面。 从 HTML 中提取内容 单行。或者您也可以使用 PHPDom,更高级和更多代码,但更精确的编码。可在:http://php.net/manual/en/book.dom.php
例子:
<?php
$html = <<<EOF
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
</head>
<body>
<p> </p>
</body>
</html>
EOF;
// This one works perfectly.
$dom = new DOMDocument();
$dom->loadXML($html, LIBXML_DTDLOAD);
//Do here what you will.
print $dom->saveXML();
?>
【讨论】:
【参考方案4】:不同之处在于您使用它们的环境:在 JavaScript 中,您正在操作的 DOM 位于客户端 - 已加载您正在查看的 HTML 页面的浏览器。如果您在 PHP 中使用 DOM API 操作文档,那么您就是在对服务器端的文档进行操作。
这似乎令人困惑,因为两者都使用了 DOM。这样做只是为了方便:PHP 简单地实现了 DOM 命令,以便人们可以轻松地在 PHP 中编写与在 JavaScript 中相同类型的代码。您不能使用 PHP 中的 DOM API 支持来操作浏览器 DOM。
(这里有一个与本地存储 API 的类比:现在浏览器具有本地存储 API,您可以在浏览器中使用 SQL 将内容存储在本地数据库中——但这只是因为您是在客户端编写 SQL代码和服务器端代码并不意味着它们在操作相同的数据。)
【讨论】:
以上是关于PHP DOM Manipulation 有啥用?的主要内容,如果未能解决你的问题,请参考以下文章
XML中DOM有些啥用,它具体有很多的对象和方法,他们有啥用,具体举个例子用在哪?!