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和ACCESS写聊天室(五)
Oct 09 PHP
phpfans留言版用到的数据操作类和分页类
Jan 04 PHP
php+AJAX传送中文会导致乱码的问题的解决方法
Sep 08 PHP
php5新改动之短标记启用方法
Sep 11 PHP
浅析ThinkPHP中的pathinfo模式和URL重写
Jan 06 PHP
php查询mysql数据库并将结果保存到数组的方法
Mar 18 PHP
详解php魔术方法(Magic methods)的使用方法
Feb 14 PHP
PHP7安装Redis扩展教程【Linux与Windows平台】
Sep 30 PHP
php微信公众号开发(3)php实现简单微信文本通讯
Dec 15 PHP
php框架CodeIgniter使用redis的方法分析
Apr 13 PHP
关于Yii中模型场景的一些简单介绍
Sep 22 PHP
PHP读取文件或采集时解决中文乱码
Mar 09 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/10/09 PHP
PHP文件注释标记及规范小结
2012/04/01 PHP
PHP 数组遍历foreach语法结构及实例
2016/06/13 PHP
PHP 使用二进制保存用户状态的实例
2018/01/29 PHP
javascript预加载图片、css、js的方法示例介绍
2013/10/14 Javascript
js中判断用户输入的值是否为空的简单实例
2013/12/23 Javascript
JS过滤url参数特殊字符的实现方法
2013/12/24 Javascript
轻松创建nodejs服务器(3):代码模块化
2014/12/18 NodeJs
node.js开机自启动脚本文件
2014/12/24 Javascript
可以浮动某个物体的jquery控件用法实例
2015/07/24 Javascript
JS实现设置ff与ie元素绝对位置的方法
2016/03/08 Javascript
AngularJs自定义服务之实现签名和加密
2016/08/02 Javascript
Bootstrap CDN和本地化环境搭建
2016/10/26 Javascript
js实现密码强度检验
2017/01/15 Javascript
jQuery之动画ajax事件(实例讲解)
2017/07/18 jQuery
详解如何在angular2中获取节点
2017/11/23 Javascript
Vue组件通信的四种方式汇总
2018/02/08 Javascript
使用node打造自己的命令行工具方法教程
2018/03/26 Javascript
简单学习5种处理Vue.js异常的方法
2019/06/17 Javascript
node crawler如何添加promise支持
2020/02/01 Javascript
[01:37]全新的一集《真视界》——TI7总决赛
2017/09/21 DOTA
[01:54]TI珍贵瞬间系列(五):压力
2020/08/29 DOTA
Android 兼容性问题:java.lang.UnsupportedOperationException解决办法
2017/03/19 Python
Python实现购物评论文本情感分析操作【基于中文文本挖掘库snownlp】
2018/08/07 Python
Python多继承原理与用法示例
2018/08/23 Python
pytorch使用Variable实现线性回归
2019/05/21 Python
pycharm 设置项目的根目录教程
2020/02/12 Python
基于python 将列表作为参数传入函数时的测试与理解
2020/06/05 Python
python中random模块详解
2021/03/01 Python
CSS3新属性transition-property transform box-shadow实例学习
2013/06/06 HTML / CSS
瑞典手机壳品牌:Richmond & Finch
2018/04/28 全球购物
中年人生感言
2014/02/04 职场文书
追悼会主持词
2014/03/20 职场文书
2015年信贷员工作总结
2015/04/28 职场文书
《最后一头战象》教学反思
2016/02/16 职场文书
golang的文件创建及读写操作
2022/04/14 Golang