【问题标题】:What is the use of PHP DOM Manipulation?PHP DOM Manipulation 有什么用?
【发布时间】:2011-03-15 06:10:36
【问题描述】:

对不起,如果这个问题太笼统了,但我想知道与 javascript DOM 操作相比,PHP DOM 操作有什么用?

我知道主要是用来解析一些html,或者xml,但是还有其他应用好用吗?

【问题讨论】:

    标签: javascript php dom


    【解决方案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代码和服务器端代码并​​不意味着它们在操作相同的数据。)

          【讨论】:

            猜你喜欢
            • 2018-07-12
            • 2021-02-15
            • 2011-04-04
            • 1970-01-01
            • 2011-09-18
            • 2012-11-02
            • 1970-01-01
            • 2016-10-08
            • 2019-08-18
            相关资源
            最近更新 更多