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制作静态网站的模板框架(四)
Oct 09 PHP
php中用文本文件做数据库的实现方法
Mar 27 PHP
比较全的PHP 会话(session 时间设定)使用入门代码
Jun 05 PHP
PHP中改变图片的尺寸大小的代码
Jul 17 PHP
PHP生成不重复标识符的方法
Nov 21 PHP
php计算2个日期的差值函数分享
Feb 02 PHP
php正则preg_replace_callback函数用法实例
Jun 01 PHP
两种php去除二维数组的重复项方法
Nov 04 PHP
php获取本机真实IP地址实例代码
Mar 31 PHP
Yii2.0表关联查询实例分析
Jul 18 PHP
php变量与数组相互转换的方法(extract与compact)
Dec 02 PHP
PHP单元测试框架PHPUnit用法详解
Jan 23 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
解析file_get_contents模仿浏览器头(user_agent)获取数据
2013/06/27 PHP
PHP中使用smarty生成静态文件的例子
2014/04/24 PHP
PHP读取CSV大文件导入数据库的实例
2017/07/24 PHP
js 分栏效果实现代码
2009/08/29 Javascript
JQuery 选择器 xpath 语法应用
2010/05/13 Javascript
JS打开新窗口的2种方式
2013/04/18 Javascript
jQuery获取CSS样式中的颜色值的问题,不同浏览器格式不同的解决办法
2013/05/13 Javascript
javascript中的绑定与解绑函数应用示例
2013/06/24 Javascript
JS 日期比较大小的简单实例
2014/01/13 Javascript
删除节点的jquery代码
2014/01/13 Javascript
Js实现动态添加删除Table行示例
2014/04/14 Javascript
JavaScript数值转换的三种方式总结
2014/07/31 Javascript
基于jquery的手风琴图片展示效果实现方法
2014/12/16 Javascript
JQuery控制Radio选中方法分析
2015/05/29 Javascript
JS实现统计复选框选中个数并提示确定与取消的方法
2015/07/01 Javascript
jquery采用oop模式class类的使用示例
2016/01/22 Javascript
实例讲解jquery中mouseleave和mouseout的区别
2016/02/17 Javascript
jQuery 插件实现随机自由弹跳气泡样式
2017/01/12 Javascript
详谈Angular路由与Nodejs路由的区别
2017/03/05 NodeJs
去掉vue 中的代码规范检测两种方法(Eslint验证)
2018/03/21 Javascript
Layui之table中的radio在切换分页时无法记住选中状态的解决方法
2019/09/02 Javascript
Python深入学习之上下文管理器
2014/08/31 Python
django session完成状态保持的方法
2018/11/27 Python
django的ORM模型的实现原理
2019/03/04 Python
Pycharm及python安装详细步骤及PyCharm配置整理(推荐)
2020/07/31 Python
Daniel Wellington官方海外旗舰店:丹尼尔惠灵顿DW手表
2018/02/22 全球购物
Otiumberg官网:英国半精致珠宝品牌
2021/01/16 全球购物
亿企通软件测试面试题
2012/04/10 面试题
数控专业推荐信范文
2013/12/02 职场文书
八一慰问活动方案
2014/02/07 职场文书
新春寄语大全
2014/04/09 职场文书
诚信承诺书模板
2014/05/26 职场文书
2014幼儿园教师师德师风演讲稿
2014/09/10 职场文书
2015年学校信息技术工作总结
2015/05/25 职场文书
2019通用版劳动合同范本!
2019/07/11 职场文书
仅用几行Python代码就能复制她的U盘文件?
2021/06/26 Python