解析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(1)
Oct 09 PHP
一个用php实现的获取URL信息的类
Jan 02 PHP
php 网页游戏开发入门教程一(webgame+design)
Oct 26 PHP
PHP 程序员的调试技术小结
Nov 15 PHP
按上下级层次关系输出内容的PHP代码
Jul 17 PHP
ajax在joomla中的原生态应用代码
Jul 19 PHP
使用PHP和HTML5 FormData实现无刷新文件上传教程
Sep 06 PHP
php设计模式之单例模式实例分析
Feb 25 PHP
php实现图片缩略图的方法
Mar 29 PHP
php制作简单模版引擎
Apr 07 PHP
php大小写转换函数(strtolower、strtoupper)用法介绍
Nov 17 PHP
PHP删除数组中指定下标的元素方法
Feb 03 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中使用smarty生成静态文件的例子
2014/04/24 PHP
10款实用的PHP开源工具
2015/10/23 PHP
php制作的简单验证码识别代码
2016/01/26 PHP
PHP转换文本框内容为HTML格式的方法
2016/07/20 PHP
thinkphp中AJAX返回ajaxReturn()方法分析
2016/12/06 PHP
php实现不通过扩展名准确判断文件类型的方法【finfo_file方法与二进制流】
2017/04/18 PHP
PHP实现QQ登录的开原理和实现过程
2018/02/04 PHP
IE 条件注释详解总结(附实例代码)
2009/08/29 Javascript
js 函数的执行环境和作用域链的深入解析
2009/11/01 Javascript
Jquery选择器中使用变量实现动态选择例子
2014/07/25 Javascript
jquery实现的美女拼图游戏实例
2015/05/04 Javascript
基于jQuery实现拖拽图标到回收站并删除功能
2015/11/25 Javascript
JS模拟简易滚动条效果代码(附demo源码)
2016/04/05 Javascript
浅析javascript中的Event事件
2016/12/09 Javascript
ReactNative中使用Redux架构总结
2017/12/15 Javascript
nodejs实现连接mongodb数据库的方法示例
2018/03/15 NodeJs
生成无限制的微信小程序码的示例代码
2019/09/20 Javascript
easyUI使用分页过滤器对数据进行分页操作实例分析
2020/06/01 Javascript
解决python3 json数据包含中文的读写问题
2018/05/10 Python
python3使用smtplib实现发送邮件功能
2018/05/22 Python
python使用matplotlib画饼状图
2018/09/25 Python
celery4+django2定时任务的实现代码
2018/12/23 Python
python logging模块的使用总结
2019/07/09 Python
python 自定义装饰器实例详解
2019/07/20 Python
Python性能分析工具py-spy原理用法解析
2020/07/27 Python
python3实现飞机大战
2020/11/29 Python
Html5之自定义属性(data-,dataset)
2019/11/19 HTML / CSS
Stylenanda中文站:韩国一线网络服装品牌
2016/12/22 全球购物
美国第一香水网站:Perfume.com
2017/01/23 全球购物
Otticanet澳大利亚:最顶尖的世界名牌眼镜, 能得到打折季的价格
2018/08/23 全球购物
公司员工手册范本
2015/05/14 职场文书
国博复兴之路观后感
2015/06/02 职场文书
2016年“我们的节日·重阳节”主题活动总结
2016/04/01 职场文书
django学习之ajax post传参的2种格式实例
2021/05/14 Python
Linux中Nginx的防盗链和优化的实现代码
2021/06/20 Servers
CentOS7和8下安装Maven3.8.4
2022/04/07 Servers