解析PHP SPL标准库的用法(遍历目录,查找固定条件的文件)

yipeiwu_com7年前PHP代码库
<?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 defined()函数的使用图文详解

PHP defined()函数的使用图文详解

PHP defined() 函数 例子 定义和用法 defined() 函数检查某常量是否存在。 若常量存在,则返回 true,否则返回 false。 语法 defined(name)...

php函数与传递参数实例分析

本文实例讲述了函数的调用与函数定义语法,并讲解了关于函数中的变量以及向函数传递数值方法.分享给大家供大家参考。具体如下: 一、函数的基础 php提供了大量的函数,并且允许用户自定函数,p...

PHP的压缩函数实现:gzencode、gzdeflate和gzcompress的区别

•gzencode 默认使用ZLIB_ENCODING_GZIP编码,使用gzip压缩格式,实际上是使用defalte 算法压缩数据,然后加上文件头和adler32校验 &#...

php实现登录tplink WR882N获取IP和重启的方法

本文实例讲述了php实现登录tplink WR882N获取IP和重启的方法。分享给大家供大家参考,具体如下: 服务器一上传大数据tplink WR882N就容易卡住, 然后上不了网. 打...

用穿越火线快速入门php面向对象

复制代码 代码如下: <?php /* *用穿越火线快速入门php面向对象! *php目前已经成为国内的主流web developer的首选开发语言,其强大的面向对象容易使初学者找...