解析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如何解决网站大流量与高并发的问题
Jun 25 PHP
simplehtmldom Doc api帮助文档
Mar 26 PHP
PHP在线生成二维码(google api)的实现代码详解
Jun 04 PHP
PHP设计模式之结构模式的深入解析
Jun 13 PHP
PHP中CURL的CURLOPT_POSTFIELDS参数使用细节
Mar 17 PHP
PHP基于CURL进行POST数据上传实例
Nov 10 PHP
php实现的网络相册图片防盗链完美破解方法
Jul 01 PHP
PHP6新特性分析
Mar 03 PHP
PHP实现对图片的反色处理功能【测试可用】
Feb 01 PHP
PHP正则判断一个变量是否为正整数的方法
Feb 27 PHP
启用OPCache提高PHP程序性能的方法
Mar 21 PHP
php 利用socket发送GET,POST请求的实例代码
Jul 04 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
SONY ICF-SW55的电路分析
2021/03/02 无线电
PHP XML数据解析代码
2010/05/26 PHP
PHP zlib扩展实现页面GZIP压缩输出
2010/06/17 PHP
php做下载文件的实现代码及文件名中乱码解决方法
2011/02/03 PHP
php调用nginx的mod_zip模块打包ZIP文件
2014/06/11 PHP
在WordPress中使用wp_count_posts函数来统计文章数量
2016/01/05 PHP
CI框架中redis缓存相关操作文件示例代码
2016/05/17 PHP
php实现socket推送技术的示例
2017/12/20 PHP
jQuery 入门讲解1
2009/04/15 Javascript
Node.js的Express框架使用上手指南
2016/03/12 Javascript
JS实现图文并茂的tab选项卡效果示例【附demo源码下载】
2016/09/21 Javascript
基于NodeJS+MongoDB+AngularJS+Bootstrap开发书店案例分析
2017/01/12 NodeJs
Node.js学习之TCP/IP数据通讯(实例讲解)
2017/10/11 Javascript
ES6入门教程之let、const的使用方法
2019/04/13 Javascript
如何自动化部署项目?折腾服务器之旅~
2019/04/16 Javascript
layui添加动态菜单与选项卡 AJAX请求的例子
2019/09/25 Javascript
JavaScript实现简单计算器功能
2019/12/19 Javascript
原生javascript实现类似vue的数据绑定功能示例【观察者模式】
2020/02/24 Javascript
基于原生js实现判断元素是否有指定class名
2020/07/11 Javascript
Element DateTimePicker日期时间选择器的使用示例
2020/07/27 Javascript
vue video和vue-video-player实现视频铺满教程
2020/10/30 Javascript
vue实现点击出现操作弹出框的示例
2020/11/05 Javascript
python实现的二叉树算法和kmp算法实例
2014/04/25 Python
Python读取txt某几列绘图的方法
2018/10/14 Python
利用python循环创建多个文件的方法
2018/10/25 Python
Python创建临时文件和文件夹
2020/08/05 Python
Python __slots__的使用方法
2020/11/15 Python
PyTorch预训练Bert模型的示例
2020/11/17 Python
Linux中如何用命令创建目录
2015/01/12 面试题
高级文秘工作总结的自我评价
2013/09/28 职场文书
温馨提示标语
2014/06/26 职场文书
私用公车造成事故检讨书
2014/11/16 职场文书
民事和解协议书格式
2014/11/29 职场文书
写景作文评语集锦
2014/12/25 职场文书
公司更名通知函
2015/04/24 职场文书
python的html标准库
2022/04/29 Python