基于jQuery的PHP实现

phpQuery—基于jQuery的PHP实现

Query的选择器之强大是有目共睹的,phpQuery 让php也拥有了这样的本领,它就相当于处事端的jQuery。

先来看看官方简介: 

phpQuery is a server-side, chainable, CSS3 selector driven Document Object Model (DOM) API based on jQuery JavaScript Library.
Library is written in PHP5 and provides additional Command Line Interface (CLI). 
 

存在的意义
我们有时需要抓取一个网页的内容,但只需要特定部门的信息,凡是会用正则来办理,这虽然没有问题。正则是一个通用办理方案,但特定环境下,往往有更简朴快捷的要领。好比你想查询一个编程方面的问题,虽然可以利用Google,但stackoverflow 作为一个专业的编程问答社区,会提供应你更多,更靠谱的谜底。
对付html页面,不该该利用正则的原因主要有3个
1、编写条件表达式较量贫苦
尤其对付新手,看到一堆”不知所云”的字符评凑在一起,有种脑壳都要炸了的感受。假如要疏散的工具没有太明明的特征,正则写起来更是贫苦。
2、效率不高
对付php来说,正则应该是没有步伐的步伐,能通过字符串函数办理的,就不要劳烦正则了。用正则去处理惩罚一个30多k的文件,效率不敢担保。
3、有phpQuery
假如你利用过jQuery,想获取某个特定元素应该是垂手可得的工作,phpQuery让这成为了大概。
 
浅析phpQuery
phpQuery是基于php5新添加的DOMDocument。而DOMDocument则是专门用来处理惩罚html/xml。它提供了强大xpath选择器及其他许多html/xml操纵函数,使得处理惩罚html/xml起来很是利便。那为什么不直接利用呢?这个,去看一下官网的函数列表 就知道了,假如对本身的影象力很有信心,不妨一试。
 
几个简朴的例子
获取Google首页logo(google首页的源码可不是一般的乱啊) <?php include 'phpQuery.php'; phpQuery::newDocumentFile('http://www.google.com.hk/'); $companies = pq('#hplogo'); highlight_string($companies); ?>


获取蓝色抱负最热的雇用地位 

<? include 'phpQuery.php'; phpQuery::newDocumentFile('http://job.blueidea.com'); $companies = pq('#hotcoms .coms')->find('div'); foreach($companies as $company) { echo pq($company)->find('h3 a')->text()."<br>"; } ?>


小结
• pq()就像jQuery里的$()
• 根基上jQuery的选择器都可以用在phpQuery上,只要把’.'酿成’->’
• phpQuery提供了好几种载入文件的要领,有的利用字符串,有的利用文件(包罗url),选择的时候要留意
• 根基上这一页 就很能说明问题了

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/7865.html