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
PHP4和PHP5共存于一系统
Nov 17 PHP
粗略计算在线时间,bug:ip相同
Dec 09 PHP
php网页后退不再出现过期
Mar 08 PHP
使用PHP遍历文件目录与清除目录中文件的实现详解
Jun 24 PHP
php中url传递中文字符,特殊危险字符的解决方法
Aug 17 PHP
ThinkPHP采用GET方式获取中文参数查询无结果的解决方法
Jun 26 PHP
PHP获取当前完整URL地址的函数
Dec 21 PHP
利用“多说”制作留言板、评论系统
Jul 14 PHP
php操纵mysqli数据库的实现方法
Sep 18 PHP
PHP树形结构tree类用法示例
Feb 01 PHP
laravel 5.3 单用户登录简单实现方法
Oct 14 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
使用PHP数组实现无限分类,不使用数据库,不使用递归.
2006/12/09 PHP
php几个预定义变量$_SERVER用法小结
2014/11/07 PHP
php匹配字符中链接地址的方法
2014/12/22 PHP
Mac环境下php操作mysql数据库的方法分享
2015/05/11 PHP
jQuery实现长文字部分显示代码
2013/05/13 Javascript
jQuery不兼容input的change事件问题解决过程
2014/12/05 Javascript
JavaScript中window.showModalDialog()用法详解
2014/12/18 Javascript
jQuery实现类似老虎机滚动抽奖效果
2015/08/06 Javascript
浅谈Javascript中Object与Function对象
2015/09/26 Javascript
详解JS几种变量交换方式以及性能分析对比
2016/11/25 Javascript
利用javascript实现的三种图片放大镜效果实例(附源码)
2017/01/23 Javascript
详解node HTTP请求客户端 - Request
2017/05/05 Javascript
微信小程序封装http访问网络库实例代码
2017/05/24 Javascript
jQuery实现base64前台加密解密功能详解
2017/08/29 jQuery
Angular 5.0 来了! 有这些大变化
2017/11/15 Javascript
p5.js实现斐波那契螺旋的示例代码
2018/03/22 Javascript
nodejs aes 加解密实例
2018/10/10 NodeJs
Vue SPA 首屏优化方案
2021/02/26 Vue.js
[45:32]Liquid vs LGD 2018国际邀请赛淘汰赛BO3 第二场 8.23
2018/08/24 DOTA
python多线程扫描端口示例
2014/01/16 Python
Python-基础-入门 简介
2014/08/09 Python
详解Python中内置的NotImplemented类型的用法
2015/03/31 Python
python 文件转成16进制数组的实例
2018/07/09 Python
python批量从es取数据的方法(文档数超过10000)
2018/12/27 Python
Python判断变量名是否合法的方法示例
2019/01/28 Python
TensorFlow实现保存训练模型为pd文件并恢复
2020/02/06 Python
Python爬取梨视频的示例
2021/01/29 Python
北卡罗来纳州豪华家具和家居装饰店:Carolina Rustica
2018/10/30 全球购物
大学生标准推荐信范文
2013/11/25 职场文书
乡镇综治宣传月活动总结
2014/07/02 职场文书
缅怀先烈演讲稿
2014/09/03 职场文书
中秋节国旗下演讲稿
2014/09/13 职场文书
2014年学校食堂工作总结
2014/11/25 职场文书
同意落户证明
2015/06/19 职场文书
Python3接口性能测试实例代码
2021/06/20 Python
通过Python把学姐照片做成拼图游戏
2022/02/15 Python