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
Windows下的PHP5.0详解
Nov 18 PHP
php 友好URL的实现(吐血推荐)
Oct 04 PHP
php中批量修改文件后缀名的函数代码
Oct 23 PHP
php图片加水印原理(超简单的实例代码)
Jan 18 PHP
PHP file_get_contents设置超时处理方法
Sep 30 PHP
PHP错误Allowed memory size of 67108864 bytes exhausted的3种解决办法
Jul 28 PHP
PHP内存缓存Memcached类实例
Dec 08 PHP
作为程序员必知的16个最佳PHP库
Dec 09 PHP
PHP创建word文档的方法(平台无关)
Mar 29 PHP
php微信公众号开发之快递查询
Oct 20 PHP
Laravel 解决419错误 -ajax请求错误的问题(CSRF验证)
Oct 25 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
PHP5权威编程阅读学习笔记 附电子书下载
2012/07/05 PHP
php下拉选项的批量操作的实现代码
2013/10/14 PHP
PHP读取PPT文件的方法
2015/12/10 PHP
php简单解析mysqli查询结果的方法(2种方法)
2016/06/29 PHP
jquery之Document元素选择器篇
2008/08/14 Javascript
网页自动跳转代码收集
2009/09/27 Javascript
基于JQuery的数字改变的动画效果--可用来做计数器
2010/08/11 Javascript
Jquery带搜索框的下拉菜单
2013/05/06 Javascript
javascript中几个容易混淆的概念总结
2015/04/14 Javascript
jquery实现手机号码选号的方法
2015/07/31 Javascript
AngularJS基础教程之简单介绍
2015/09/27 Javascript
JS实现部分HTML固定页面顶部随屏滚动效果
2015/12/24 Javascript
浅谈JS中json数据的处理
2016/06/30 Javascript
js document.getElementsByClassName的使用介绍与自定义函数
2016/11/25 Javascript
浅谈js键盘事件全面控制
2016/12/01 Javascript
JS多文件上传的实例代码
2017/01/11 Javascript
jQuery EasyUI 页面加载等待及页面等待层
2017/02/06 Javascript
AngularJS之页面跳转Route实例代码
2017/03/10 Javascript
JS实现列表页面隔行变色效果
2017/03/25 Javascript
H5上传本地图片并预览功能
2017/05/08 Javascript
Easyui ueditor 整合解决不能编辑的问题(推荐)
2017/06/25 Javascript
js 将canvas生成图片保存,或直接保存一张图片的实现方法
2018/01/02 Javascript
JS如何操作DOM基于表格动态展示数据
2020/10/15 Javascript
python中readline判断文件读取结束的方法
2014/11/08 Python
Django的URLconf中使用缺省视图参数的方法
2015/07/18 Python
python与php实现分割文件代码
2017/03/06 Python
Python爬虫:url中带字典列表参数的编码转换方法
2019/08/21 Python
keras 自定义loss model.add_loss的使用详解
2020/06/22 Python
基于IE10/HTML5 开发
2013/04/22 HTML / CSS
美体小铺加拿大官方网站:The Body Shop加拿大
2016/10/30 全球购物
西班牙香水和化妆品连锁店:Druni
2019/05/05 全球购物
工厂采购员岗位职责
2014/04/08 职场文书
运动会通讯稿600字
2015/07/20 职场文书
励志语录:只有自己足够强大,才能不被别人践踏
2020/01/09 职场文书
CSS 制作波浪效果的思路
2021/05/18 HTML / CSS
Python使用Beautiful Soup(BS4)库解析HTML和XML
2022/06/05 Python