解析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
php strlen mb_strlen计算中英文混排字符串长度
Jul 10 PHP
第六章 php目录与文件操作
Dec 30 PHP
header跳转和include包含问题详解
Sep 08 PHP
php抓取页面的几种方法详解
Jun 17 PHP
PHP载入图像imagecreatefrom_gif_jpeg_png系列函数用法分析
Nov 14 PHP
php 判断页面或图片是否经过gzip压缩的方法
Apr 05 PHP
动态表单验证的操作方法和TP框架里面的ajax表单验证
Jul 19 PHP
PHP基于curl实现模拟微信浏览器打开微信链接的方法示例
Feb 15 PHP
Yii2处理密码加密及验证的方法
May 12 PHP
Laravel 关联模型-关联新增和关联更新的方法
Oct 10 PHP
修改Laravel自带的认证系统的User类的命名空间的步骤
Oct 15 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
windows下PHP APACHE MYSQ完整配置
2007/01/02 PHP
PHP中读取文件的8种方法和代码实例
2014/08/05 PHP
PHP简单获取视频预览图的方法
2015/03/12 PHP
Symfony2实现在doctrine中内置数据的方法
2016/02/05 PHP
Joomla数据库操作之JFactory::getDBO用法
2016/05/05 PHP
PHP迭代与递归实现无限级分类
2017/08/28 PHP
php ajax数据传输和响应方法
2018/08/21 PHP
PHP容器类的两种实现方式示例
2019/07/24 PHP
单击复制文字兼容各浏览器的完美解决方案
2013/07/04 Javascript
js实例属性和原型属性示例详解
2014/11/23 Javascript
基于JavaScript实现仿京东图片轮播效果
2015/11/06 Javascript
Extjs 点击复选框在表格中增加相关信息行
2016/07/12 Javascript
jQuery内容过滤选择器用法示例
2016/09/09 Javascript
整理关于Bootstrap过渡动画的慕课笔记
2017/03/29 Javascript
bootstrap3使用bootstrap datetimepicker日期插件
2017/05/24 Javascript
Vue之Watcher源码解析(2)
2017/07/19 Javascript
jquery实现侧边栏左右伸缩效果的示例
2017/12/19 jQuery
解决vue 更改计算属性后select选中值不更改的问题
2018/03/02 Javascript
Nodejs监控事件循环异常示例详解
2019/09/22 NodeJs
JavaScript图像放大镜效果实现方法详解
2020/06/28 Javascript
vue中v-for循环选中点击的元素并对该元素添加样式操作
2020/07/17 Javascript
Vue生命周期activated之返回上一页不重新请求数据操作
2020/07/26 Javascript
通过滑动翻页效果实现和移动端click事件问题
2021/01/26 Javascript
Python实现的简单万年历例子分享
2014/04/25 Python
跟老齐学Python之集成开发环境(IDE)
2014/09/12 Python
python复制文件的方法实例详解
2015/05/22 Python
在PyCharm下使用 ipython 交互式编程的方法
2019/01/17 Python
django 取消csrf限制的实例
2020/03/13 Python
个人自荐书
2013/12/20 职场文书
高中班长自我鉴定
2013/12/20 职场文书
寒假实习自荐信
2014/01/26 职场文书
党员个人公开承诺书
2014/08/29 职场文书
永远跟党走演讲稿
2014/09/12 职场文书
病人家属写给医院的感谢信
2015/01/23 职场文书
小学语文教师研修感悟
2015/11/18 职场文书
Win11黑色桌面背景怎么办?Win11黑色壁纸解决方法汇总
2022/04/05 数码科技