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


Posted in PHP onJanuary 06, 2015

简介

如何在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处理

<?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,很方便。

PHP 相关文章推荐
五个PHP程序员工具
May 26 PHP
使用eAccelerator加密PHP程序
Oct 03 PHP
PHP+ajax 无刷新删除数据
Feb 20 PHP
php checkdate、getdate等日期时间函数操作详解
Mar 11 PHP
批量获取memcache值并按key的顺序返回的实现代码
Jun 14 PHP
php中通过curl检测页面是否被百度收录
Sep 27 PHP
thinkphp实现上一篇与下一篇的方法
Dec 08 PHP
php将access数据库转换到mysql数据库的方法
Dec 24 PHP
PHP实现mysqli批量执行多条语句的方法示例
Jul 22 PHP
PHP编程实现微信企业向用户付款的方法示例
Jul 26 PHP
PHP简单实现正则匹配省市区的方法
Apr 13 PHP
针对thinkPHP5框架存储过程bug重写的存储过程扩展类完整实例
Jun 16 PHP
php基于表单密码验证与HTTP验证用法实例
Jan 06 #PHP
php使用fputcsv()函数csv文件读写数据的方法
Jan 06 #PHP
phplot生成图片类用法详解
Jan 06 #PHP
写一段简单的PHP建立文件夹代码
Jan 06 #PHP
php读取flash文件高宽帧数背景颜色的方法
Jan 06 #PHP
php自动获取关键字的方法
Jan 06 #PHP
windows7下php开发环境搭建图文教程
Jan 06 #PHP
You might like
通过文字传递创建的图形按钮
2006/10/09 PHP
中篇:安装及配置PHP
2006/12/13 PHP
php Smarty模板生成html文档的方法
2010/04/12 PHP
php设计模式 Factory(工厂模式)
2011/06/26 PHP
php自定义apk安装包实例
2014/10/20 PHP
Yii扩展组件编写方法实例分析
2015/06/29 PHP
Laravel5.* 打印出执行的sql语句的方法
2017/07/24 PHP
PHP仿tp实现mvc框架基本设计思路与实现方法分析
2018/05/23 PHP
CheckBox 如何实现全选?
2006/06/23 Javascript
javascript offsetX与layerX区别
2010/03/12 Javascript
JQuery优缺点分析说明
2011/04/10 Javascript
JS trim去空格的最佳实践
2011/10/30 Javascript
Jjcarousellite 实现图片列表滚动的简单实例
2013/11/29 Javascript
使用jQuery实现的掷色子游戏动画效果
2014/03/14 Javascript
javascript制作网页图片上实现下雨效果
2015/02/26 Javascript
浅析Node.js中的内存泄漏问题
2015/06/23 Javascript
JS实现css hover操作的方法示例
2017/04/07 Javascript
微信小程序表单验证错误提示效果
2017/05/19 Javascript
vue中element-ui表格缩略图悬浮放大功能的实例代码
2018/06/26 Javascript
vue2.x 通过后端接口代理,获取qq音乐api的数据示例
2019/10/30 Javascript
vue的三种图片引入方式代码实例
2019/11/19 Javascript
[01:18:21]EG vs TNC Supermajor小组赛B组败者组第一轮 BO3 第一场 6.2
2018/06/03 DOTA
python数据结构之二叉树的遍历实例
2014/04/29 Python
浅谈Python中copy()方法的使用
2015/05/21 Python
详解Python中的元组与逻辑运算符
2015/10/13 Python
python迭代器与生成器详解
2016/03/10 Python
Python函数参数操作详解
2018/08/03 Python
python 用所有标点符号分隔句子的示例
2019/07/15 Python
python实现从wind导入数据
2019/12/03 Python
pytorch进行上采样的种类实例
2020/02/18 Python
Python 实现自动完成A4标签排版打印功能
2020/04/09 Python
IE兼容css3圆角的实现代码
2011/07/21 HTML / CSS
《语言的突破》读后感3篇
2019/12/12 职场文书
Python基于Opencv识别两张相似图片
2021/04/25 Python
MySQL实例精讲单行函数以及字符数学日期流程控制
2021/10/15 MySQL
Python matplotlib可视化之绘制韦恩图
2022/02/24 Python