解析PHP SPL标准库的用法(遍历目录,查找固定条件的文件)


Posted in PHP onJune 18, 2013

<?php
 class RecursiveFileFilterIterator extends FilterIterator {
     // 满足条件的扩展名
     protected $ext = array('jpg','gif');

     /**
      * 提供 $path 并生成对应的目录迭代器
      */
     public function __construct($path) {
         parent::__construct(new RecursiveIteratorIterator(new RecursiveDirectoryIterator($path)));
     }

     /**
      * 检查文件扩展名是否满足条件
      */
     public function accept() {
         $item = $this->getInnerIterator();
         if ($item->isFile() && 
                 in_array(pathinfo($item->getFilename(), PATHINFO_EXTENSION), $this->ext)) {
             return TRUE;
         }
     }
 }

 // 实例化
 foreach (new RecursiveFileFilterIterator('D:/history') as $item) {
     echo $item . PHP_EOL;
 }

PHP 相关文章推荐
用户的详细注册和判断
Oct 09 PHP
如何实现给定日期的若干天以后的日期
Oct 09 PHP
目录,文件操作详谈―PHP
Nov 25 PHP
使用PHP数组实现无限分类,不使用数据库,不使用递归.
Dec 09 PHP
深入PHP异步执行的详解
Jun 03 PHP
基于php中使用excel的简单介绍
Aug 02 PHP
PHP整数取余返回负数的相关解决方法
May 15 PHP
php构造方法中析构方法在继承中的表现
Apr 12 PHP
微信 getAccessToken方法详解及实例
Nov 23 PHP
php图形jpgraph操作实例分析
Feb 22 PHP
Laravel框架集合用法实例浅析
May 14 PHP
php引用传递
Apr 01 PHP
360通用php防护代码(使用操作详解)
Jun 18 #PHP
浅析PHP程序防止ddos,dns,集群服务器攻击的解决办法
Jun 18 #PHP
解析PHP计算页面执行时间的实现代码
Jun 18 #PHP
php实现简单洗牌算法
Jun 18 #PHP
php抽奖小程序的实现代码
Jun 18 #PHP
解析PHP生成静态html文件的三种方法
Jun 18 #PHP
解析PHP汉字转换拼音的类
Jun 18 #PHP
You might like
收音机另类DIY - 纸巾盒做外壳
2021/03/02 无线电
为php4加入动态flash文件的生成的支持
2006/10/09 PHP
php实现高效获取图片尺寸的方法
2014/12/12 PHP
微信公众平台开发之天气预报功能
2015/08/31 PHP
YII使用url组件美化管理的方法
2015/12/28 PHP
解决Laravel 不能创建 migration 的问题
2019/10/09 PHP
Docker 安装 PHP并与Nginx的部署实例讲解
2021/02/27 PHP
javascript iframe编程相关代码
2009/12/28 Javascript
getJSON调用后台json数据时函数被调用两次的原因猜想
2013/09/29 Javascript
js之ActiveX控件使用说明 new ActiveXObject()
2014/03/03 Javascript
24款热门实用的jQuery插件推荐
2014/12/24 Javascript
简介JavaScript中的setDate()方法的使用
2015/06/11 Javascript
localResizeIMG先压缩后使用ajax无刷新上传(移动端)
2015/08/11 Javascript
Bootstrap 模态框(Modal)带参数传值实例
2017/08/20 Javascript
基于JavaScript实现抽奖系统
2018/01/16 Javascript
用jQuery将JavaScript对象转换为querystring查询字符串的方法
2018/11/12 jQuery
vue2.0实现的tab标签切换效果(内容可自定义)示例
2019/02/11 Javascript
详解利用eventemitter2实现Vue组件通信
2019/11/04 Javascript
vue基础知识--axios合并请求和slot
2020/06/04 Javascript
JavaScript实现网页下拉菜单效果
2020/11/20 Javascript
Python  连接字符串(join %)
2008/09/06 Python
Python找出9个连续的空闲端口
2016/02/01 Python
Python环境下安装使用异步任务队列包Celery的基础教程
2016/05/07 Python
python 实现一个反向单位矩阵示例
2019/11/29 Python
Pytho爬虫中Requests设置请求头Headers的方法
2020/09/22 Python
Perfumetrader荷兰:香水、化妆品和护肤品在线商店
2017/09/15 全球购物
Baracuta官方网站:Harrington夹克,G9,G4,G10等
2018/03/06 全球购物
澳大利亚在线批发商:Simply Wholesale
2021/02/24 全球购物
公务员总结性个人自我评价
2013/12/05 职场文书
初三化学教学反思
2014/01/23 职场文书
毕业典礼主持词大全
2014/03/26 职场文书
甜品店创业计划书
2014/08/14 职场文书
2016教师暑期培训学习心得体会
2016/01/09 职场文书
Java中使用Filter过滤器的方法
2021/06/28 Java/Android
解决springboot druid数据库连接失败后一直重连的方法
2022/04/19 Java/Android
Shell中的单中括号和双中括号的用法详解
2022/12/24 Servers