解析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中几种常见安全设置详解
Apr 06 PHP
PHP迅雷、快车、旋风下载专用链转换代码
Jun 15 PHP
PHP开发中四种查询返回结果分析
Jan 02 PHP
PHP--用万网的接口实现域名查询功能
Dec 13 PHP
深入理解ob_flush和flush的区别(ob_flush()与flush()使用方法)
Feb 06 PHP
浅谈PHP中foreach/in_array的使用
Nov 02 PHP
PHP中each与list用法分析
Jan 08 PHP
PHP设置头信息及取得返回头信息的方法
Jan 25 PHP
PHP页面输出时js设置input框的选中值
Sep 30 PHP
PHP通过get方法获得form表单数据方法总结
Sep 12 PHP
php使用自带dom扩展进行元素匹配的原理解析
May 29 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可能遇到的问题“无法载入mysql扩展” 的解决方法
2007/04/16 PHP
PHP5.2下preg_replace函数的问题
2015/05/08 PHP
php die()与exit()的区别实例详解
2016/12/03 PHP
使用php实现网站验证码功能【推荐】
2017/02/09 PHP
JS Replace 全部替换字符的用法小结
2013/12/24 Javascript
JS获取DropDownList的value值与text值的示例代码
2014/01/07 Javascript
z-blog SyntaxHighlighter 长代码无法换行解决办法(jquery)
2014/11/16 Javascript
Fullpage.js固定导航栏-实现定位导航栏
2016/03/17 Javascript
Vue数据驱动模拟实现1
2017/01/11 Javascript
jQuery轻松实现无缝轮播效果
2017/03/22 jQuery
JavaScript实现数值自动增加动画
2017/12/28 Javascript
React中的render何时执行过程
2018/04/13 Javascript
ES6关于Promise的用法详解
2018/05/07 Javascript
Angularjs 根据一个select的值去设置另一个select的值方法
2018/08/13 Javascript
vue全局使用axios的方法实例详解
2018/11/22 Javascript
解决vue移动端适配问题
2018/12/12 Javascript
如何从头实现一个node.js的koa框架
2019/06/17 Javascript
微信小程序实现点赞业务
2021/02/10 Javascript
python实现udp传输图片功能
2020/03/20 Python
python实现凯撒密码、凯撒加解密算法
2020/06/11 Python
通过cmd进入python的步骤
2020/06/16 Python
Python数据可视化实现漏斗图过程图解
2020/07/20 Python
基于python爬取链家二手房信息代码示例
2020/10/21 Python
浅谈HTML5中dialog元素尝鲜
2018/10/15 HTML / CSS
巴西男士个人护理产品商店:SHOP4MEN
2017/08/07 全球购物
新加坡最受追捧的体验平台:Hapz
2018/01/01 全球购物
两则小学生的自我评价分享
2013/11/14 职场文书
广告学专业推荐信范文
2013/11/23 职场文书
矫正人员思想汇报
2014/01/08 职场文书
晚宴邀请函范文
2014/01/15 职场文书
企业演讲稿范文大全
2014/05/20 职场文书
作风大整顿心得体会
2014/09/10 职场文书
实习单位证明范例
2014/11/17 职场文书
早上好问候语大全
2015/11/10 职场文书
为什么RedisCluster设计成16384个槽
2021/09/25 Redis
Win10多屏显示如何设置?Win10电脑多屏显示设置操作方法
2022/07/07 数码科技