简介

如何在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代码相关推荐

  1. php jquery ajax xml,jquery Ajax解析XML数据代码实例

    jquery Ajax解析XML数据(同步及异步调用)简单实例 $.ajax({ async: true, // 默认true(异步请求) cache: true, // 默认true,设置为 fal ...

  2. jquery JSON解析代码

    jquery JSON解析说明.这里首先给出JSON字符串集,代码: var data="  {  root:  [  {name:'1',value:'0'},  {name:'6101' ...

  3. json在线解析功能代码实现

    文章目录 json在线解析功能代码实现 jsp部分 js部分 css部分 最终效果 json在线解析功能代码实现 当在查看一些原始报文数据时,需要美化展示原始报文json,这时需要使用css进行相应排 ...

  4. 使用 markdown-it 解析 markdown 代码(读 VuePress 三)

    前言 在此系列文章的第一篇,我们介绍了 Vuepress 如何让 Markdown 支持 Vue 组件的,但没有提到非 Vue 组件的其他部分如何被解析. 今天,我们就来看看 Vuepress 是如何 ...

  5. jQuery 原理的模拟代码 -4 重要的扩展函数 extend

    在上两篇文章中,我们看到每次要通过 jQuery 的原型增加共享方法的时候,都需要通过 jQuery.fn 一个个进行扩展,非常麻烦,jQuery.fn.extend 提供了一个扩展机制,可以方便我们 ...

  6. 【深度学习】梯度和方向导数概念解析(代码基于Pytorch实现)

    [深度学习]梯度和方向导数概念解析(代码基于Pytorch实现) 文章目录 1 方向导数 2 梯度 3 自动求导实现 4 梯度下降4.1 概述4.2 小批量梯度下降 5 总结 1 方向导数 方向导数的 ...

  7. 分析和解析PHP代码的7大工具

    PHP已成为时下最热门的编程语言之一,然而却有许多PHP程序员苦恼找不到合适的工具来帮助自己分析和解析PHP代码.今天小编就为大家介绍几个非常不错的工具,来帮助程序员们提高自己的工作效率,一起来看看吧 ...

  8. 编程笔试(解析及代码实现):国内各大银行(招商银行/浦发银行等)在线笔试常见题目(猴子吃桃/字符串逆序输出/一段话输出字的个数/单词大小转换等)及其代码实现(Java/Python/C#等)之详细攻略

    编程笔试(解析及代码实现):国内各大银行(招商银行/浦发银行等)在线笔试常见题目(猴子吃桃/字符串逆序输出/一段话输出字的个数/单词大小转换等)及其代码实现(Java/Python/C#等)之详细攻略 ...

  9. 编程笔试(解析及代码实现):字符串反转(字符串逆序输出)代码实现十多种方法对比(解析思路及其耗费时间)详细攻略

    编程笔试(解析及代码实现):字符串反转(字符串逆序输出)代码实现十多种方法对比(解析思路及其耗费时间)详细攻略 目录 字符串反转(字符串逆序输出)代码实现十多种方法对比(解析思路及其耗费时间)详细攻略 ...

  10. 编程笔试(解析及代码实现):猴子吃桃。猴子第一天吃了若干个桃子,当即吃了一半,还不解馋,又多吃了一个…的C++、Java、Python、C#等语言代码实现

    编程笔试(解析及代码实现):猴子吃桃.猴子第一天吃了若干个桃子,当即吃了一半,还不解馋,又多吃了一个. 第二天早上又将剩下的桃子吃了一半,还是不过瘾,又多吃了一个.以后每天都吃前一天剩下的一半再加一个 ...

最新文章

  1. 节点对象图与DOM树形图
  2. 深度学习为什么要resize_为什么要学习演讲与口才
  3. PP后台配置-定义工作中心标准值
  4. nGQL中vid值过长被截断的处理方法
  5. mysql+sqlplus命令找不到_bash: sqlplus: command not found 解决方法
  6. 中班机器人上课视频_家委会:出班费买智能扫地机器人,不用家长搞卫生了,莫名其妙...
  7. (转) Arcgis4js实现链家找房的效果
  8. CodeSmith实用技巧(五):利用继承生成可变化的代码
  9. nodejs学习笔记-用http模块开启服务器端口
  10. 如何优雅地将Markdon格式文件md转为pdf?(使用typora)
  11. linux系统学习第六天
  12. Python——KNN实战(附详细代码与注解)
  13. 三层交换机连接路由器时配置OSPF注意事项
  14. JS 用window.open()函数详解
  15. 【毕业设计】2021年计算机专业-12套精品项目源码免费下载
  16. 音频,视频和视觉效果
  17. 家用无线漫游组网设置-亲测可用
  18. oracle box怎么全屏,Oracle VM VirtualBox 虚拟机设置全屏与共享
  19. 科学防雷接地和雷电防护方案
  20. 3d人体智能测试软件,3DBody三维交互解剖软件

热门文章

  1. child-selector解释
  2. 百度编辑器 UEditor 报错汇总
  3. Rails开始遇到的一个端口占用问题的解决方法
  4. 小程序开发,不现实用户的头像!
  5. centos 添加快捷
  6. [机器学习]推荐系统之协同过滤算法
  7. 树状数组 (数据结构)
  8. 第十一讲 在ASP.NET中使用用户控件
  9. 根据一个单词找所有的兄弟单词的思想如何处理
  10. SpringBoot配置文件属性值