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

相关文章

  • PHP错误机制知识汇总

    PHP错误机制知识汇总

    这篇文章主要介绍了PHP错误机制知识汇总的相关资料,需要的朋友可以参考下
    2016-03-03
  • laravel 框架配置404等异常页面

    laravel 框架配置404等异常页面

    这篇文章主要介绍了laravel 框架配置404等异常页面,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-01-01
  • php使用自带dom扩展进行元素匹配的原理解析

    php使用自带dom扩展进行元素匹配的原理解析

    这篇文章主要介绍了php使用自带dom扩展进行元素匹配的原理解析,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-05-05
  • laravel 模型查询按照whereIn排序的示例

    laravel 模型查询按照whereIn排序的示例

    今天小编就为大家分享一篇laravel 模型查询按照whereIn排序的示例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-10-10
  • php基于Redis消息队列实现的消息推送的方法

    php基于Redis消息队列实现的消息推送的方法

    这篇文章主要介绍了php基于Redis消息队列实现的消息推送的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-11-11
  • PHP实现小程序批量通知推送

    PHP实现小程序批量通知推送

    这篇文章主要为大家详细介绍了PHP实现小程序批量通知推送,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-11-11
  • PHP处理SQL脚本文件导入到MySQL的代码实例

    PHP处理SQL脚本文件导入到MySQL的代码实例

    通常在制作安装程式,数据备份程序的时候会要用到这样的代码,我看网上有是有不太多,而且有些也不是很好用,有时候这种代码直接用现成的可以节省很多时间,那么我就从stackoverflow转了一个过来,需要的朋友可以参考下
    2014-03-03
  • windows安装composer并更换国内镜像的过程详解

    windows安装composer并更换国内镜像的过程详解

    这篇文章主要给大家介绍了windows安装composer并更换国内镜像的过程详解,文中有详细的流程介绍,通过图文结合讲解的非常详细,需要的朋友可以参考下
    2023-11-11
  • php 调用百度sms来发送短信的实现示例

    php 调用百度sms来发送短信的实现示例

    这篇文章主要介绍了php 调用百度sms来发送短信的实现示例,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-11-11
  • php在线打包程序源码

    php在线打包程序源码

    把里面的代码保存为php格式的文件 然后丢到你的站点下面 打开……
    2008-07-07

最新评论