php解释DOM的又一利器:phpQuery(比simple html dom要强呢)

在认识phpQuery之前用的系Simple HTML DOM,在使用的过程中发现它存在内存溢出问题,尤其是用来抓取网页时,512M的内存没一会就爆掉了(Fatal error: Allowedmemory size of 268435456 bytes exhausted (tried to allocate 91627 bytes) in../simple_html_dom.php on line 906)~对于phpQuery只能说是相识恨晚了。
下面介绍下她:
JQuery是一个非常著名的JS框架,提供 了对DOM文档的完整操作。这个文档处理利器现在终于有了PHP版,也就是说可以使用php操作 HTML或者XML文档,遍历文档的节点,很轻松的取出,填充节点内容。或者简单来说,除了js的事件响应部分,其余的几乎都可以用php来实现。php 对数据处理的能力显然要比JS强大很多,对不熟悉JS的同学来说,phpQuery是个非常强大的帮手。如果了解了phpQuery,那么就很容易理解其 实phpQuery也可以取代一部分Smarty的功能。

我刚刚开始学习使用phpQuery,这应该算一篇学习笔记,我会努力将其向手册风格靠拢,不过不会做成中文手册,仍然会加入我在使用过程中遇到的问题以及解决方案。

开始phpQuery
参考资料:phpQuery JQuery

phpQuery从编程思想到语言风格都是参照JQuery来做的,所以熟悉JQuery的人可以随时对照参考JQuery手册,方便理解。

phpQuery应用举例:

require(’phpQuery/phpQuery.php’);
$file = file_get_contents(”test_phpQuery.html”);
$dom = phpQuery::newDocument($file);  //初始化对象

echo pq("head > title")->text(); //输出文档title

pq这个全局函数类似于JQuery中的$()符号,用于执行请求,或者遍历DOM节点。
例子中的”head > title”就是一个选择请求,选择head标签下的title子标签。

pq(”li”); //选择所有文档中的li标签
foreach(pq(”li”) as $item)
pq($item);

遍历所有的”li”标签并取得内容。

在分析XML文档上,技术是我见过的最方便的…….



101.55 

pq(”channel > geo”); //输出101.55

总结一下,phpQuery就是JQuery另一个化身,所以会用JQuery就会用phpQuery,在使用疑问上大可参考JQuery的语法文档,话虽如此,但是两者还是有些分别的,这个就是慢慢看下phpQuery的API了,目前关于它的相关文档并不多,而且官方提供的相关文档也不是太全。不过也可以起到举一反三的作用,绝对难不聪明好学的你。


你可能感兴趣的:(php解释DOM的又一利器:phpQuery(比simple html dom要强呢))