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 相关文章推荐
一个查看session内容的函数
Oct 09 PHP
PHP中常用数组处理方法实例分析
Aug 30 PHP
PHP分多步骤填写发布信息的简单方法实例代码
Sep 23 PHP
使用PHP遍历文件目录与清除目录中文件的实现详解
Jun 24 PHP
解析:php调用MsSQL存储过程使用内置RETVAL获取过程中的return值
Jul 03 PHP
PHP连接SQLServer2005方法及代码
Dec 26 PHP
php获取网页中图片、DIV内容的简单方法
Jun 19 PHP
php+mysqli实现将数据库中一张表信息打印到表格里的方法
Jan 28 PHP
PHP实现的分页类定义与用法示例
Jul 05 PHP
PHP实现求解最长公共子串问题的方法
Nov 17 PHP
Laravel框架实现多数据库连接操作详解
Jul 12 PHP
PhpStorm的使用教程(本地运行PHP+远程开发+快捷键)
Mar 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
PHP个人网站架设连环讲(二)
2006/10/09 PHP
ThinkPHP自动验证失败的解决方法
2011/06/09 PHP
PHP中通过语义URL防止网站被攻击的方法分享
2011/09/08 PHP
推荐10个提供免费PHP脚本下载的网站
2014/12/31 PHP
YII2.0框架行为(Behavior)深入详解
2019/07/26 PHP
解决laravel5中auth用户登录其他页面获取不到登录信息的问题
2019/10/08 PHP
PHP实现创建一个RPC服务操作示例
2020/02/23 PHP
js 单引号 传递方法
2009/06/22 Javascript
JavaScript与JQUERY获取元素的宽、高和位置
2017/02/26 Javascript
vue教程之toast弹框全局调用示例详解
2020/08/24 Javascript
如何快速解决JS或Jquery ajax异步跨域的问题
2018/01/08 jQuery
微信小程序自定义多选事件的实现代码
2018/05/17 Javascript
微信小程序自定义导航栏
2018/12/31 Javascript
js DOM的事件常见操作实例详解
2019/12/16 Javascript
解决微信小程序scroll-view组件无横向滚动的问题
2020/02/04 Javascript
Vue 组件复用多次自定义参数操作
2020/07/27 Javascript
[42:34]VP vs VG 2018国际邀请赛小组赛BO2 第一场 8.19
2018/08/21 DOTA
Windows下实现Python2和Python3两个版共存的方法
2015/06/12 Python
Python中强大的命令行库click入门教程
2016/12/26 Python
Python使用get_text()方法从大段html中提取文本的实例
2019/08/27 Python
pytorch torch.expand和torch.repeat的区别详解
2019/11/05 Python
基于Django signals 信号作用及用法详解
2020/03/28 Python
python实现最短路径的实例方法
2020/07/19 Python
Django xadmin安装及使用详解
2020/10/26 Python
css3 iphone玻璃透明气泡完美实现
2013/03/20 HTML / CSS
美体小铺美国官网:The Body Shop美国
2017/11/10 全球购物
澳大利亚制造的羊皮靴:Original UGG Boots
2017/11/13 全球购物
华为C++笔试题
2014/08/05 面试题
与UNIX有关的几个名词
2015/09/17 面试题
超市实习总结自我鉴定
2013/09/19 职场文书
商务英语专业应届毕业生求职信
2013/10/28 职场文书
全民创业工作总结
2015/08/13 职场文书
高三化学教学反思
2016/02/22 职场文书
端午节将至,用Python爬取粽子数据并可视化,看看网友喜欢哪种粽子吧!
2021/06/11 Python
golang 实用库gotable的具体使用
2021/07/01 Golang
宫崎骏十大动画电影,宫崎骏好看的动画电影排名
2022/03/22 日漫