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 动态添加记录
Mar 10 PHP
一贴学会PHP 新手入门教程
Aug 03 PHP
巧用php中的array_filter()函数去掉多维空值的代码分享
Sep 07 PHP
PHP中大于2038年时间戳的问题处理方案
Mar 03 PHP
PHP连接access数据库
Mar 27 PHP
Zend Framework教程之Bootstrap类用法概述
Mar 14 PHP
Zend Framework基于Command命令行建立ZF项目的方法
Feb 18 PHP
PHP中的正则表达式实例详解
Apr 25 PHP
PHP在弹框中获取foreach中遍历的id值并传递给地址栏
Jun 13 PHP
Yii2框架数据验证操作实例详解
May 02 PHP
Yii使用EasyWechat实现小程序获取用户的openID的方法
Apr 29 PHP
详细分析PHP7与PHP5区别
Jun 26 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
ajax php传递和接收变量实现思路及代码
2012/12/19 PHP
探讨:parse url解析URL,返回其组成部分
2013/06/14 PHP
关于zend studio 出现乱码问题的总结
2013/06/23 PHP
JAVASCRIPT HashTable
2007/01/22 Javascript
看了就知道什么是JSON
2007/12/09 Javascript
jQuery学习笔记 操作jQuery对象 属性处理
2012/09/19 Javascript
jQuery+.net实现浏览更多内容(改编php版本)
2013/03/28 Javascript
JQuery获取样式中的background-color颜色值的问题
2013/08/20 Javascript
JavaScript 32位整型无符号操作示例
2013/12/08 Javascript
JS+CSS实现可拖动的弹出提示框
2015/02/16 Javascript
12 款 JS 代码测试必备工具(翻译)
2016/12/13 Javascript
javascript算法之二叉搜索树的示例代码
2017/09/12 Javascript
解决Webpack 热部署检测不到文件变化的问题
2018/02/22 Javascript
JavaScript数组基于交换的排序示例【冒泡排序】
2018/07/21 Javascript
node.js环境搭建图文详解
2018/09/19 Javascript
vuejs+element UI点击编辑表格某一行时获取内容填入表单的示例
2018/10/31 Javascript
小程序多图列表实现性能优化的方法步骤
2019/05/28 Javascript
Vue 3.0 全家桶抢先体验
2020/04/28 Javascript
[57:55]EG vs Fnatic 2018国际邀请赛小组赛BO2 第一场 8.19
2018/08/21 DOTA
Python配置文件解析模块ConfigParser使用实例
2015/04/13 Python
Pandas 同元素多列去重的实例
2018/07/03 Python
selenium+python 对输入框的输入处理方法
2018/10/11 Python
Python2.7版os.path.isdir中文路径返回false的解决方法
2019/06/21 Python
基于Django ORM、一对一、一对多、多对多的全面讲解
2019/07/26 Python
python Xpath语法的使用
2020/11/26 Python
css背景图片的背景裁切、背景透明度、背景变换等效果运用
2012/12/24 HTML / CSS
英国婴儿和儿童服装网站:Vertbaudet
2018/04/02 全球购物
wedgwood加拿大官网:1759年成立的英国国宝级陶瓷餐具品牌
2018/07/17 全球购物
给定一个时间点,希望得到其他时间点
2013/11/07 面试题
小学生植树节活动总结
2014/07/04 职场文书
关于上班时间调整的通知
2015/04/23 职场文书
教师节老师寄语
2015/05/28 职场文书
《梅花魂》教学反思
2016/02/18 职场文书
分家协议书范本
2016/03/22 职场文书
2016年质量月活动总结报告
2016/04/05 职场文书
Nginx实现高可用集群构建(Keepalived+Haproxy+Nginx)
2021/05/27 Servers