$query php,phpQuery让php处理html代码像jQuery一样方便

简介

如何在php中方便地解析html代码,估计是每个phper都会遇到的问题。用phpQuery就可以让php处理html代码像jQuery一样方便。

DEMO

我下的是onefile版:phpQuery-0.9.5.386-onefile.zip

然后在项目中引用。

html文件test.html:

       

Spiderman City Drive

       

Spiderman - City Raid

php处理:

include('phpQuery-onefile.php');

$filePath = 'test.html';

$fileContent = file_get_contents($filePath);

$doc = phpQuery::newDocumentHTML($fileContent);

phpQuery::selectDocument($doc);

$data = array(

'name' => array(),

'href' => array(),

'img' => array()

);

foreach (pq('a') as $t) {

$href = $t -> getAttribute('href');

$data['href'][] = $href;

}

foreach (pq('img') as $img) {

$data['img'][] = $domain . $img -> getAttribute('src');

}

foreach (pq('.GameName') as $name) {

$data['name'][] = $name -> nodeValue;

}

var_dump($data);

?>

上面的代码中包含了取属性和innerText内容(通过nodeValue取)。

输出:

array (size=3)

'name' =>

array (size=2)

0 => string 'Spiderman City Drive' (length=20)

1 => string 'Spiderman - City Raid' (length=21)

'href' =>

array (size=2)

0 => string 'http://www.gahe.com/Spiderman-City-Drive' (length=40)

1 => string 'http://www.gahe.com/Spiderman-City-Raid' (length=39)

'img' =>

array (size=2)

0 => string 'http://www.gahe.com/thumb/12/Spiderman-City-Drive.jpg' (length=53)

1 => string 'http://www.gahe.com/thumb/12/Spiderman-City-Raid.jpg' (length=52)

强大的是pq选择器,语法类似jQuery,很方便。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/296206.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

《那些年啊,那些事——一个程序员的奋斗史》——126

段伏枥坐在宽敞的办公室,正在专心致志地研究文档的时候,一封邮件引发了自己的注意。邮件的内容很简单,主要是恭喜自己获得微软MVP候选人资格,请尽快填写完整的个人信息,以便于参与评选。 段伏枥看了这邮件,…

ip地址规划

子网划分好处:节约ip 便于管理 层次性 安全性子网数2的n次方,n为子网位。主机数2的N次方减2,N为主机数。VLSM(variable-length subnet masks可变长子网掩码)路由汇总好处:减小路由表规模 减轻路由器负担 减…

StackExchange.Redis 命令扩展

StackExchange.Redis 命令扩展Intro在之前的文章中有简单介绍过 StackExchange.Redis 直接调用 Redis 命令来实现调用 Stream 的根据消息 Id 来控制消息长度,因为 StackExchange.Redis 目前还不支持根据消息 Id 控制 Stream 消息长度,目前有很多 6.2 以后…

那个成人总会遇到的小问题……

结语超模君就问问:我还有机会10万+吗?(溜了溜了)莱布尼茨德国数学家莱布尼茨,被后人誉为“百科全书式的天才”,他的研究涉及逻辑学、力学等40多个领域。他创建了数学理论:微积分学。…

java继承接口和泛型,JavaSE习题 继承接口和泛型

问答题:1.子类在什么情况下可以继承父类友好成员?答:在同一个包内2.子类通过怎样的方法可以隐藏继承的成员变量?答:声明一个与父类相同变量名的成员变量3.子类重写继承的方法原则是什么?答:保证…

visual studio如何修改c++项目的.net framework框架版本

一、 修改项目文件 在 Visual Studio 的“解决方案资源管理器”中,打开项目的快捷菜单,然后选择“卸载项目”。 这将为你的项目卸载项目文件 (.vcxproj)。 在菜单栏上,依次选择“文件”、“打开”、“文件”。 在“打开文件”对话框中&#…

vertical-align

对于vertical-align属性,可以用于inline或者liline-block的元素,它需要一个参照物,此参照物是该行中最高的元素。转载于:https://www.cnblogs.com/lqzerogg/archive/2012/12/17/2822274.html

Qos、Tos、Cos、DSCP

严格的说,Cos与Tos只是QoS的一种标记机制。QoS范围太大,涉及到入口数据流的标记和分类及速率限制,网络骨干的拥塞避免和拥塞管理,网络出口的队列调度机制等等。Cos是二层ISL或者802.1Q数据帧的优先级标记,3个bit&#…

Github CodeSpaces 使用及定制化

Github CodeSpaces 使用及定制化IntroGithub 最近推出了很多令人兴奋的新功能,最近使用了 Github CodeSpaces,觉得还是挺不错的,CodeSpaces 相当于自己有了一个云主机,真正实现了云端开发,CodeSpaces 和 Github 做了很…

nat+端口转发,使得宿主机secureCRT可以访问vbox里linux虚拟机

为什么80%的码农都做不了架构师?>>> 环境:vbox或者叫vitrualbox连接虚拟机,由于公司内网不能分配IP(不知道是不是这个原因),虚拟机用桥接得不到IP,没法实现虚拟机和宿主互相访问&am…

java 四字节uid,Java入门教程-序列化版本号serialVersionUID的作用

原标题:Java入门教程-序列化版本号serialVersionUID的作用Java序列化是将一个对象编码成一个字节流,反序列化将字节流编码转换成一个对象。序列化是Java中实现持久化存储的一种方法;为数据传输提供了线路级对象表示法。Java的序列化机制是通过…

男人可以有多敷衍?

1 现在更流行「红茶女生」?(via.白头叔)▼2 谢谢,有被冒犯到(素材来源网络,侵删)▼3 天使与恶魔▼4 男朋友可以多敷衍?▼5 你的高原红,像极了妈妈的巴掌印&#xff…

linux 内核代码构架图

转载于:https://www.cnblogs.com/kuainiao/archive/2012/12/17/2822384.html

Win11开始大范围推送!

微软宣布 Windows11 现已开始向更多符合最低硬件要求的电脑推送。预计到 2022 年年中,所有符合条件的电脑都可以免费升级到 Windows 11。微软将根据硬件条件、可靠性、使用时间,及其它会影响升级后使用体验的因素,为 Windows 10 电脑分阶段推…

puppet安装

一. 服务器端和客户端都需要做的操作。 1. 下载软件 wget http://puppetlabs.com/downloads/facter/facter-1.6.4.tar.gz wget http://downloads.puppetlabs.com/puppet/puppet-2.7.9.tar.gz 2. 安装ruby puppet是ruby开发的,所以需要安装。 Yum …

HTFS.Software.v7.3-ISO 1DVD(传热模拟,最新完全解密版)

工厂设计相关软件: Intergraph产品: Intergraph Intools Engineering Suite v5.2-ISO 1CD(国际顶级仪表工程的设计软件) Intergraph SmartPlant Enterprise 2007-ISO 2DVD Intergraph SmartPlant 3D 2009-ISO 1DVD Intergraph SmartPlant 3D v6.1 WinXP-ISO 1DVD I…

状态压缩 + 暴力 HDOJ 4770 Lights Against Dudely

题目传送门 题意:有n*m的房间,.表示可以被点亮,#表示不能被点亮,每点亮一个房间会使旁边的房间也点亮,有意盏特别的灯可以选择周围不同方向的房间点亮。问最少需要多少灯使得所有房间点亮 分析:需要被点亮的…

有什么看起来很难,但是其实很简单的题目

全世界只有3.14 % 的人关注了爆炸吧知识做题其实很简单今天超模君一进办公室就感觉充满“杀气”,果不其然,一抬头就看见小天拿着一张纸对着我坏笑。莫非这家伙又要我折纸?拿过纸张一看,虽然密密麻麻的一大堆公式,但我相…

iphone-common-codes-ccteam源代码 CCTestMacros.m

// // CCTestMacros.m // CCFC // // Created by xichen on 11-12-30. // Copyright 2011 ccteam. All rights reserved. // #import "CCTestMacros.h" implementation CCTestMacros end 可能有更新: googlecode链接地址:http://code.googl…

双11,2分钟狂挣20亿的神秘大厂,急招.NET!

双11小米开门红,2分钟不到突破20亿,于是机智的我又去逛了下小米的招聘官网:招5年左右.NET,35k左右,14薪,要求WPF和自动化,真香!回首牛年2个跳槽季,招WPF的大厂太多了&…