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 相关文章推荐
对javascript和select部件的结合运用
Oct 09 PHP
PHP 上传文件大小限制
Jul 05 PHP
php入门学习知识点五 关于php数组的几个基本操作
Jul 14 PHP
PHP函数篇详解十进制、二进制、八进制和十六进制转换函数说明
Dec 05 PHP
PHP自定义大小验证码的方法详解
Jun 07 PHP
thinkphp验证码显示不出来的解决方法
Mar 29 PHP
网站防止被刷票的一些思路与方法
Jan 08 PHP
Yii输入正确验证码却验证失败的解决方法
Jun 06 PHP
Thinkphp开发--集成极光推送
Sep 15 PHP
PHP操作Postgresql封装类与应用完整实例
Apr 24 PHP
php ActiveMQ的安装与使用方法图文教程
Feb 23 PHP
Cookie跨域问题解决方案代码示例
Nov 24 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
一个从别的网站抓取信息的例子(域名查询)
2006/10/09 PHP
php部分常见问题总结
2008/03/27 PHP
PHP 抓取网页图片并且另存为的实现代码
2010/03/24 PHP
php中用socket模拟http中post或者get提交数据的示例代码
2013/08/08 PHP
通过php删除xml文档内容的方法
2015/01/23 PHP
详解如何在云服务器上部署Laravel
2017/06/30 PHP
JQuery实现自定义对话框的代码
2008/06/15 Javascript
JavaScript 验证浏览器是否支持javascript的方法小结
2009/05/17 Javascript
JS是按值传递还是按引用传递
2015/01/30 Javascript
基于HTML+CSS,jQuery编写的简易计算器后续(添加了键盘监听)
2016/01/05 Javascript
浅谈jQuery hover(over, out)事件函数
2016/12/03 Javascript
Angular2使用Angular-CLI快速搭建工程(二)
2017/05/21 Javascript
VUEJS 2.0 子组件访问/调用父组件的实例
2018/02/10 Javascript
利用js将ajax获取到的后台数据动态加载至网页中的方法
2018/08/08 Javascript
Fetch超时设置与终止请求详解
2019/05/18 Javascript
浅谈JSON5解决了JSON的两大痛点
2020/12/14 Javascript
[48:11]完美世界DOTA2联赛 Magma vs GXR 第二场 11.07
2020/11/10 DOTA
python实现协同过滤推荐算法完整代码示例
2017/12/15 Python
Python Tkinter 简单登录界面的实现
2019/06/14 Python
Python 文件数据读写的具体实现
2020/01/24 Python
解决Tensorboard可视化错误:不显示数据 No scalar data was found
2020/02/15 Python
浅谈python3打包与拆包在函数的应用详解
2020/05/02 Python
python 瀑布线指标编写实例
2020/06/03 Python
python中pop()函数的语法与实例
2020/12/01 Python
HTML5里autofocus自动聚焦属性使用介绍
2016/06/22 HTML / CSS
红色康乃馨酒店:Red Carnation Hotels
2017/06/22 全球购物
Larsson & Jennings官网:现代瑞士钟表匠
2018/03/20 全球购物
Sport-Thieme荷兰:购买体育用品
2019/08/25 全球购物
家长对孩子评语
2014/01/30 职场文书
教师简历自我评价
2014/02/03 职场文书
元旦促销方案
2014/03/15 职场文书
大学生感恩父母演讲稿
2014/08/28 职场文书
城市规划应届生推荐信
2014/09/08 职场文书
幸福终点站观后感
2015/06/04 职场文书
2015暑假打工实践报告
2015/07/13 职场文书
在Python中如何使用yield
2021/06/07 Python