phpQuery 正在参加 2021 年度 OSC 中国开源项目评选,请投票支持!
phpQuery 在 2021 年度 OSC 中国开源项目评选 中已获得 {{ projectVoteCount }} 票,请投票支持!
2021 年度 OSC 中国开源项目评选 正在火热进行中,快来投票支持你喜欢的开源项目!
2021 年度 OSC 中国开源项目评选 >>> 中场回顾
phpQuery 获得 2021 年度 OSC 中国开源项目评选「最佳人气项目」 !
授权协议 MIT
开发语言 PHP 查看源码 »
操作系统 Linux
软件类型 开源软件
所属分类 Web应用开发HTML解析器
开源组织
地区 不详
投 递 者 红薯
适用人群 未知
收录时间 2009-12-02

软件简介

phpQuery是一个服务器端jQuery开源项目。它可以让PHP开发人员采用与jQuery相同的语法来处理网页元素。

示例代码:

<?php
require('phpQuery/phpQuery.php');
// INITIALIZE IT
// phpQuery::newDocumentHTML($markup);
// phpQuery::newDocumentXML();
// phpQuery::newDocumentFileXHTML('test.html');
// phpQuery::newDocumentFilePHP('test.php');
// phpQuery::newDocument('test.xml', 'application/rss+xml');
// this one defaults to text/html in utf8
$doc = phpQuery::newDocument('<div/>');
// FILL IT
// array syntax works like ->find() here
$doc['div']->append('<ul></ul>');
// array set changes inner html
$doc['div ul'] = '<li>1</li> <li>2</li> <li>3</li>';
// MANIPULATE IT
$li = null;
// almost everything can be a chain
$doc['ul > li']
	->addClass('my-new-class')
	->filter(':last')
		->addClass('last-li')
// save it anywhere in the chain
		->toReference($li);
// SELECT DOCUMENT
// pq(); is using selected document as default
phpQuery::selectDocument($doc);
// documents are selected when created or by above method
// query all unordered lists in last selected document
$ul = pq('ul')->insertAfter('div');
// ITERATE IT
// all direct LIs from $ul
foreach($ul['> li'] as $li) {
	// iteration returns PLAIN dom nodes, NOT phpQuery objects
	$tagName = $li->tagName;
	$childNodes = $li->childNodes;
	// so you NEED to wrap it within phpQuery, using pq();
	pq($li)->addClass('my-second-new-class');
}
// PRINT OUTPUT
// 1st way
print phpQuery::getDocument($doc->getDocumentID());
// 2nd way
print phpQuery::getDocument(pq('div')->getDocumentID());
// 3rd way
print pq('div')->getDocument();
// 4th way
print $doc->htmlOuter();
// 5th way
print $doc;
// another...
print $doc['ul'];
展开阅读全文

代码

的 Gitee 指数为
超过 的项目

评论 (0)

加载中
更多评论
暂无内容
发表了博客
2019/08/12 17:29

phpQuery的使用

前言 为什么使用phpQuery phpQuery是基于php5新添加的DOMDocument。而DOMDocument则是专门用来处理html/xml。它提供了强大的xpath选择器及其他很多html/xml操作函数,使得处理html/xml起来非常方便。 尤其对于新手,看到一堆”不知所云”的字符评凑在一起,有种脑袋都要炸了的感觉。如果要分离的对象没有太明显的特征,正则写起来更是麻烦。 学习成本低,jQuery是PHP程序员的标配,那么懂jQuery的话,是可以无缝衔接的,学习成本...

0
0
发表了博客
2014/03/27 10:19

phpQuery 无法解析 html 结构

有时候解析一段 HTML 代码时 phpQuery 无法解析原因: 可能是缺少类似下面的 meta 信息,在带解析的字符串任意位置添上即可 : <meta http-equiv="Content-Type" content="text/html; charset=GBK" />

0
0
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
发表了问答
2017/06/16 10:33

phpQuery网页采集不全,只有部分采集到

phpQuery网页采集不全,只有部分采集到 通过firebug把网页代复制下来保存为一个本地网页的话,采集没有问题,所有内容都能采集到,但是在线采集的话只能部分采集,问题出在一个嵌套的表格,外层表格可以采集到,而内层table采集不到,难道是编码的问题吗,网上找了编码方法试了也不行,百度搜“采集不全”的问题也搜不到,只好请教各位大神了,已经煎熬了几天了, 采用的版本: phpQuery-0.9.5.386-onefile,mysql5.5.56,php5....

2
0
发表了问答
2015/11/22 13:33

phpQuery 页面解析用法

想拿到text 3000,用什么方法获取 <span>3000</span> 拿到属性,可以用这些方法 .($node->getAttribute('id') .($node->getAttribute('class') .($node->getAttribute('name') 还有whois是什么意思,没看懂 $result->whois()

2
0
发表了问答
2015/07/17 16:40

phpquery中的each怎么用??

想知道phpquery中each怎么用,我这么写 echo pq("article")->each("Welcome::test","title"); 返回的是整个对象。 当然,用foreach也可以实现,但还是想了解下,看phpquery这部分代码,没看懂~~

5
1
发表了问答
2013/10/15 11:49

问个phpQuery采集的问题

@李飞麟 你好,想请教个phpQuery的问题。 我用phpQuery采集糗事百科首页的内容,代码如下 phpQuery::newDocumentFile('http://qiushibaike.com'); $art = pq('.block'); foreach($art as $tmp){ print '标题:'.pq($tmp)->find('div:eq(1)')->html().'<br>'; } 代码运行没反应。 <div class="block untagged mb15 bs2" id="qiushi_tag_46608790"> 糗百网页源代码里面循环的是这个div,请问是我的pq('.block')这个有问题吗,这种c...

5
0
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
0 评论
42 收藏
分享
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部