用phpQuery像jquery一样解析html代码
简介
如何在php中方便地解析html代码,估计是每个phper都会遇到的问题。用phpQuery就可以让php处理html代码像jQuery一样方便。
项目地址:https://code.google.com/p/phpquery/
github地址:https://github.com/TobiaszCudnik/phpquery
DEMO
下载库文件:https://code.google.com/p/phpquery/downloads/list
我下的是onefile版:phpQuery-0.9.5.386-onefile.zip
官方demo:https://code.google.com/p/phpquery/source/browse/branches/dev/demo.php
然后在项目中引用。
html文件test.html:
<div class="thumb" id="Thumb-13164-3640" style="position: absolute; left: 0px; top: 0px;"><a href="/Spiderman-City-Drive"><img src="/thumb/12/Spiderman-City-Drive.jpg" alt=""><span class="GameName" id="GameName-13164-3640" style="display: none;">Spiderman City Drive</span><span class="GameRating" id="GameRating-13164-3640" style="display: none;"><span style="width: 68.14816px;"></span></span></a> </div> <div class="thumb" id="Thumb-13169-5946" style="position: absolute; left: 190px; top: 0px;"><a href="/Spiderman-City-Raid"><img src="/thumb/12/Spiderman-City-Raid.jpg" alt=""><span class="GameName" id="GameName-13169-5946" style="display: none;">Spiderman - City Raid</span><span class="GameRating" id="GameRating-13169-5946" style="display: none;"><span style="width: 67.01152px;"></span></span></a> </div>
php处理:
<?phpinclude('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,很方便。
转载于:https://www.cnblogs.com/lurenjiashuo/p/phpquery-parse-html-like-jquery.html
用phpQuery像jquery一样解析html代码相关推荐
- php jquery ajax xml,jquery Ajax解析XML数据代码实例
jquery Ajax解析XML数据(同步及异步调用)简单实例 $.ajax({ async: true, // 默认true(异步请求) cache: true, // 默认true,设置为 fal ...
- jquery JSON解析代码
jquery JSON解析说明.这里首先给出JSON字符串集,代码: var data=" { root: [ {name:'1',value:'0'}, {name:'6101' ...
- json在线解析功能代码实现
文章目录 json在线解析功能代码实现 jsp部分 js部分 css部分 最终效果 json在线解析功能代码实现 当在查看一些原始报文数据时,需要美化展示原始报文json,这时需要使用css进行相应排 ...
- 使用 markdown-it 解析 markdown 代码(读 VuePress 三)
前言 在此系列文章的第一篇,我们介绍了 Vuepress 如何让 Markdown 支持 Vue 组件的,但没有提到非 Vue 组件的其他部分如何被解析. 今天,我们就来看看 Vuepress 是如何 ...
- jQuery 原理的模拟代码 -4 重要的扩展函数 extend
在上两篇文章中,我们看到每次要通过 jQuery 的原型增加共享方法的时候,都需要通过 jQuery.fn 一个个进行扩展,非常麻烦,jQuery.fn.extend 提供了一个扩展机制,可以方便我们 ...
- 【深度学习】梯度和方向导数概念解析(代码基于Pytorch实现)
[深度学习]梯度和方向导数概念解析(代码基于Pytorch实现) 文章目录 1 方向导数 2 梯度 3 自动求导实现 4 梯度下降4.1 概述4.2 小批量梯度下降 5 总结 1 方向导数 方向导数的 ...
- 分析和解析PHP代码的7大工具
PHP已成为时下最热门的编程语言之一,然而却有许多PHP程序员苦恼找不到合适的工具来帮助自己分析和解析PHP代码.今天小编就为大家介绍几个非常不错的工具,来帮助程序员们提高自己的工作效率,一起来看看吧 ...
- 编程笔试(解析及代码实现):国内各大银行(招商银行/浦发银行等)在线笔试常见题目(猴子吃桃/字符串逆序输出/一段话输出字的个数/单词大小转换等)及其代码实现(Java/Python/C#等)之详细攻略
编程笔试(解析及代码实现):国内各大银行(招商银行/浦发银行等)在线笔试常见题目(猴子吃桃/字符串逆序输出/一段话输出字的个数/单词大小转换等)及其代码实现(Java/Python/C#等)之详细攻略 ...
- 编程笔试(解析及代码实现):字符串反转(字符串逆序输出)代码实现十多种方法对比(解析思路及其耗费时间)详细攻略
编程笔试(解析及代码实现):字符串反转(字符串逆序输出)代码实现十多种方法对比(解析思路及其耗费时间)详细攻略 目录 字符串反转(字符串逆序输出)代码实现十多种方法对比(解析思路及其耗费时间)详细攻略 ...
- 编程笔试(解析及代码实现):猴子吃桃。猴子第一天吃了若干个桃子,当即吃了一半,还不解馋,又多吃了一个…的C++、Java、Python、C#等语言代码实现
编程笔试(解析及代码实现):猴子吃桃.猴子第一天吃了若干个桃子,当即吃了一半,还不解馋,又多吃了一个. 第二天早上又将剩下的桃子吃了一半,还是不过瘾,又多吃了一个.以后每天都吃前一天剩下的一半再加一个 ...
最新文章
- 节点对象图与DOM树形图
- 深度学习为什么要resize_为什么要学习演讲与口才
- PP后台配置-定义工作中心标准值
- nGQL中vid值过长被截断的处理方法
- mysql+sqlplus命令找不到_bash: sqlplus: command not found 解决方法
- 中班机器人上课视频_家委会:出班费买智能扫地机器人,不用家长搞卫生了,莫名其妙...
- (转) Arcgis4js实现链家找房的效果
- CodeSmith实用技巧(五):利用继承生成可变化的代码
- nodejs学习笔记-用http模块开启服务器端口
- 如何优雅地将Markdon格式文件md转为pdf?(使用typora)
- linux系统学习第六天
- Python——KNN实战(附详细代码与注解)
- 三层交换机连接路由器时配置OSPF注意事项
- JS 用window.open()函数详解
- 【毕业设计】2021年计算机专业-12套精品项目源码免费下载
- 音频,视频和视觉效果
- 家用无线漫游组网设置-亲测可用
- oracle box怎么全屏,Oracle VM VirtualBox 虚拟机设置全屏与共享
- 科学防雷接地和雷电防护方案
- 3d人体智能测试软件,3DBody三维交互解剖软件