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 相关文章推荐
第八节--访问方式
Nov 16 PHP
php self,$this,const,static,-&amp;gt;的使用
Oct 22 PHP
php算开始时间到过期时间的相隔的天数
Jan 12 PHP
解析CodeIgniter自定义配置文件
Jun 18 PHP
php函数与传递参数实例分析
Nov 15 PHP
php多线程实现方法及用法实例详解
Oct 26 PHP
phalcon框架使用指南
Feb 23 PHP
PHP去除字符串最后一个字符的三种方法实例
Mar 01 PHP
老生常谈PHP面向对象之注册表模式
May 26 PHP
Yii Framework框架使用PHPExcel组件的方法示例
Jul 24 PHP
PHP实现单文件、多个单文件、多文件上传函数的封装示例
Sep 02 PHP
laravel框架创建授权策略实例分析
Nov 22 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
Terran魔法科技
2020/03/14 星际争霸
JAVA/JSP学习系列之二
2006/10/09 PHP
php上传文件的增强函数
2010/07/21 PHP
php中Y2K38的漏洞解决方法实例分析
2014/09/22 PHP
laravel 解决Eloquent ORM的save方法无法插入数据的问题
2019/10/21 PHP
Laravel实现批量更新多条数据
2020/04/06 PHP
基于jQuery实现的当离开页面时出现提示的实现代码
2011/06/27 Javascript
jQuery移动和复制dom节点实用DOM操作案例
2012/12/17 Javascript
JS定时刷新页面及跳转页面的方法
2013/07/04 Javascript
jquery移除、绑定、触发元素事件使用示例详解
2014/04/10 Javascript
jQuery事件绑定和委托实例
2014/11/25 Javascript
JavaScript动态创建link标签到head里的方法
2014/12/22 Javascript
如何编写高质量JS代码
2014/12/28 Javascript
js实现简单的验证码
2015/12/25 Javascript
ECMAScript6 新特性范例大全
2017/03/24 Javascript
前端构建工具之gulp的语法教程
2017/06/12 Javascript
使用vue-router为每个路由配置各自的title
2018/07/30 Javascript
如何使用vuex实现兄弟组件通信
2018/11/02 Javascript
JavaScript判断浏览器版本的方法
2019/11/03 Javascript
微信小程序顶部导航栏可滑动并选中放大
2019/12/05 Javascript
vue 对axios get pust put delete封装的实例代码
2020/01/05 Javascript
python中常用检测字符串相关函数汇总
2015/04/15 Python
python实现自动登录人人网并采集信息的方法
2015/06/28 Python
Python生成随机密码的方法
2017/06/16 Python
Python 通配符删除文件的实例
2018/04/24 Python
使用pandas对两个dataframe进行join的实例
2018/06/08 Python
PyTorch里面的torch.nn.Parameter()详解
2020/01/03 Python
pytorch 改变tensor尺寸的实现
2020/01/03 Python
浅谈python累加求和+奇偶数求和_break_continue
2020/02/25 Python
pycharm软件实现设置自动保存操作
2020/06/08 Python
python中字符串的编码与解码详析
2020/12/03 Python
python switch 实现多分支选择功能
2020/12/21 Python
遇到的Mysql的面试题
2014/06/29 面试题
个人优缺点总结
2015/02/28 职场文书
标枪加油稿
2015/07/22 职场文书
Python爬虫基础之初次使用scrapy爬虫实例
2021/06/26 Python