解析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 相关文章推荐
PHP中将数组转成XML格式的实现代码
Aug 08 PHP
php漏洞之跨网站请求伪造与防止伪造方法
Aug 15 PHP
PHP小技巧之JS和CSS优化工具Minify的使用方法
May 19 PHP
Php连接及读取和写入mysql数据库的常用代码
Aug 11 PHP
php处理json格式数据经典案例总结
May 19 PHP
yii2.0数据库迁移教程【多个数据库同时同步数据】
Oct 08 PHP
Yii框架防止sql注入,xss攻击与csrf攻击的方法
Oct 18 PHP
PHP实现的mysql读写分离操作示例
May 22 PHP
PHP利用pdo_odbc实现连接数据库示例【基于ThinkPHP5.1搭建的项目】
May 13 PHP
使用composer 安装 laravel框架的方法图文详解
Aug 02 PHP
Laravel5.4简单实现app接口Api Token认证方法
Aug 29 PHP
Docker 安装 PHP并与Nginx的部署实例讲解
Feb 27 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
PHP iconv 解决utf-8和gb2312编码转换问题
2010/04/12 PHP
php获取ip的三个属性区别介绍(HTTP_X_FORWARDED_FOR,HTTP_VIA,REMOTE_ADDR)
2012/09/23 PHP
探讨PHP使用eAccelerator的API开发详解
2013/06/09 PHP
php格式化金额函数分享
2015/02/02 PHP
php去除头尾空格的2种方法
2015/03/16 PHP
thinkPHP中create方法与令牌验证实例浅析
2015/12/08 PHP
[原创]PHP实现字节数Byte转换为KB、MB、GB、TB的方法
2017/08/31 PHP
菜鸟javascript基础整理1
2010/12/06 Javascript
append和appendTo的区别以及appendChild用法
2013/12/24 Javascript
js中window.open()的所有参数详细解析
2014/01/09 Javascript
Javascript非构造函数的继承
2015/04/27 Javascript
javascript实现验证身份证号的有效性并提示
2015/04/30 Javascript
判断访客终端类型集锦
2015/06/05 Javascript
Jquery遍历select option和添加移除option的实现方法
2016/08/26 Javascript
JavaScript中setTimeout的那些事儿
2016/11/14 Javascript
js获取浏览器的各种属性
2017/04/27 Javascript
详解ionic本地相册、拍照、裁剪、上传(单图完全版)
2017/10/10 Javascript
scrapyd schedule.json setting 传入多个值问题
2019/08/07 Javascript
javascript自定义加载loading效果
2020/09/15 Javascript
Python multiprocessing模块中的Pipe管道使用实例
2015/04/11 Python
Django内容增加富文本功能的实例
2017/10/17 Python
Python排序搜索基本算法之选择排序实例分析
2017/12/09 Python
django中send_mail功能实现详解
2018/02/06 Python
Python 实现异步调用函数的示例讲解
2018/10/14 Python
python批量赋值操作实例
2018/10/22 Python
python命令 -u参数用法解析
2019/10/24 Python
python中的itertools的使用详解
2020/01/13 Python
Python实现bilibili时间长度查询的示例代码
2020/01/14 Python
在django admin详情表单显示中添加自定义控件的实现
2020/03/11 Python
Python常用编译器原理及特点解析
2020/03/23 Python
Python连接HDFS实现文件上传下载及Pandas转换文本文件到CSV操作
2020/06/06 Python
详解python UDP 编程
2020/08/24 Python
开学典礼决心书
2014/03/11 职场文书
学校安全教育月活动总结
2014/07/07 职场文书
2014年档案室工作总结
2014/12/01 职场文书
Python集合的基础操作
2021/11/01 Python