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>&nbsp;</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有些啥用,它具体有很多的对象和方法,他们有啥用,具体举个例子用在哪?!

PHP 嵌套函数有啥用?

PHP 函数重载有啥用?

PHP 5.2 的 DateTime::diff() 有啥用?

php中ob_start()有啥用?

php apache有啥用