phpQuery让php处理html代码像jQuery一样方便

 更新时间:2015年01月06日 14:36:17   投稿:hebedich  
这篇文章主要介绍了phpQuery让php处理html代码像jQuery一样方便,需要的朋友可以参考下

简介

如何在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,很方便。

相关文章

  • Laravel框架基于中间件实现禁止未登录用户访问页面功能示例

    Laravel框架基于中间件实现禁止未登录用户访问页面功能示例

    这篇文章主要介绍了Laravel框架基于中间件实现禁止未登录用户访问页面功能,结合实例形式分析了Laravel框架中间件生成、注册及使用相关操作技巧,需要的朋友可以参考下
    2019-01-01
  • 三个思路解决laravel上传文件报错:413 Request Entity Too Large问题

    三个思路解决laravel上传文件报错:413 Request Entity Too Large问题

    上传图片的时候,是用laravel自带的上传图片的方法,一下气上传了20张,结果就无情报错:413 Request Entity Too Large,后面查一下,这个报错信息是nginx报的错误,不是php报的错误。也就是说在上传图片的时候被nginx拦截了
    2017-11-11
  • PHP实现唤起微信支付功能

    PHP实现唤起微信支付功能

    这篇文章主要为大家详细介绍了PHP实现唤起微信支付功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-02-02
  • ThinkPHP5与单元测试PHPUnit使用详解

    ThinkPHP5与单元测试PHPUnit使用详解

    这篇文章主要介绍了ThinkPHP5与单元测试PHPUnit使用详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-02-02
  • 去除php注释和去除空格函数分享

    去除php注释和去除空格函数分享

    这篇文章主要介绍了去除php注释和去除空格函数,php5中已提供相同功能的函数,这里只为学习PHP,需要的朋友可以参考下
    2014-03-03
  • Windows7下PHP开发环境安装配置图文方法

    Windows7下PHP开发环境安装配置图文方法

    备花点时间学习下PHP,于是在自己机器上配置了下PHP的开发和运行环境。之前在Windows Server 2003 OS中手工配置过,WEB服务器是IIS。这次是在自己机器上配置,找了个简单方式。
    2010-05-05
  • PHP PDO预处理语句及事务的使用

    PHP PDO预处理语句及事务的使用

    今天这篇文章,我们来简单的学习一下 PDO 中的预处理语句以及事务的使用,它们都是在 PDO 对象下的操作,而且并不复杂,简单的应用都能很容易地实现。只不过大部分情况下,大家都在使用框架,手写的机会非常少。
    2021-06-06
  • 利用 fsockopen() 函数开放端口扫描器的实例

    利用 fsockopen() 函数开放端口扫描器的实例

    下面小编就为大家带来一篇利用 fsockopen() 函数开放端口扫描器的实例。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-08-08
  • yii2 commands模式以及配置crontab定时任务的方法

    yii2 commands模式以及配置crontab定时任务的方法

    下面小编就为大家带来一篇yii2 commands模式以及配置crontab定时任务的方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-08-08
  • 命令行执行php脚本中的$argv和$argc配置方法

    命令行执行php脚本中的$argv和$argc配置方法

    这篇文章主要介绍了命令行执行php脚本 中$argv和$argc的方法,本文给大家介绍的非常详细,需要的朋友可以参考下
    2018-01-01

最新评论