代码之家  ›  专栏  ›  技术社区  ›  dkinzer

PHP中是否有jquery dom manipulator/css selector等效类?

  •  2
  • dkinzer  · 技术社区  · 14 年前

    我知道我可以用 DOMDocument DOMXPath 操作XML文件。但是,我真的很喜欢jquery,如果在PHP世界中有类似jquery的东西可以用于服务器端DOM操作,那就太好了。

    注: 我只对 jquery选择并操作dom,而不是全部 jquery的其他部分(我猜 你可以说只是流行音乐和 Sizzle 零件)。


    更新:
    看起来有一个等价的选择器函数,但就操作函数而言,我想我必须坚持使用domdocument。
    4 回复  |  直到 10 年前
        1
  •  3
  •   d11wtq Vadim Baryshev    14 年前

    好吧,不包括所有的javascript特定的东西,你只剩下一个CSS选择器引擎:

    http://framework.zend.com/manual/en/zend.dom.query.html

    享受:)

        2
  •  4
  •   Ian    13 年前

    你可以用 phpQuery

    它描述自己如下:phpQuery是一个基于jquery javascript库的php5服务器端、可链接、CSS3选择器驱动的文档对象模型(dom)API。

        3
  •  2
  •   wasinger    10 年前

    对, HtmlPageDom 完全按照你的要求写的。

        4
  •  1
  •   Christopher Thomas    12 年前

    @怀旧:他要求的是一个类似sizzle的库,它使用PHP作为语言而不是JavaScript,你所说的“写不改”是错误的,它只是代码,你可以随意写。

    然而,我认为问题在于,在浏览器中运行的javascript使您获得了访问DOM系统的+1权限,这可以帮助您自动创建大量的DOM节点/HTML节点,而无需自己执行这些操作。

    在php中,dom很痛苦,jquery很高兴地隐藏了这一点,因为javascript的工作方式与php不同,所以它可以不费吹灰之力就做到这一点,但是php没有访问浏览器dom的权限,并且有不同的操作方法,这就更痛苦了。

    这并不是说这是不可能的,因为它是不可能的,只是它不是那么容易,有时它是不同的,当似乎没有一个明确的原因时,我相信这可能是因为php dom内部使用libxml或类似的东西,并且在内部暴露了太多的库,所以pHP在C库语义上变得混乱。

    我认为你应该看看phpquery(https://github.com/tobiaszcudnik/phpquery),或者更好,在活跃的开发中,是querypath(http://querypath.org)。

    但是,不要期望它们像javascript jquery库那样简单,因为不幸的是,它不是……