PHP递归获取目录内所有文件的实现方法


Posted in PHP onNovember 01, 2016

如下所示:

/**
   * 递归获取文件夹内所有文件
   * 返回一个TREE结构的文件系统
   * @param string $dir
   * @param array $filter
   * @return array $files
   */
  function scan_dir($dir, $filter = array()){
    if(!is_dir($dir))return false;
    $files = array_diff(scandir($dir), array('.', '..'));
    if(is_array($files)){
      foreach($files as $key=>$value){
        if(is_dir($dir . '/' . $value)){
          $files[$value] = scan_dir($dir . '/' . $value, $filter);
          unset($files[$key]);
          continue;
        }
        $pathinfo = pathinfo($dir . '/' . $value);
        $extension = array_key_exists('extension', $pathinfo) ? $pathinfo['extension'] : '';
        if(!empty($filter) && !in_array($extension, $filter)){
          unset($files[$key]);
        }
      }
    }
    unset($key, $value);
    return $files;
  }

以上就是小编为大家带来的PHP递归获取目录内所有文件的实现方法全部内容了,希望大家多多支持三水点靠木~

PHP 相关文章推荐
无数据库的详细域名查询程序PHP版(1)
Oct 09 PHP
PHP 文本文章分页代码 按标记或长度(不涉及数据库)
Jun 07 PHP
PHP抽象类 介绍
Jun 13 PHP
php基于CodeIgniter实现图片上传、剪切功能
May 14 PHP
Yii针对添加行的增删改查操作示例
Oct 18 PHP
PHP单例模式详解及实例代码
Dec 21 PHP
利用PHP访问带有密码的Redis方法示例
Feb 09 PHP
PHP正则匹配操作简单示例【preg_match_all应用】
Jul 10 PHP
PHP获取数组中指定的一列实例
Dec 27 PHP
PHP实现一个轻量级容器的方法
Jan 28 PHP
Laravel中9个不经常用的小技巧汇总
Apr 16 PHP
php7中停止php-fpm服务的方法详解
May 09 PHP
php获得文件夹下所有文件的递归算法的简单实例
Nov 01 #PHP
ecshop适应在PHP7的修改方法解决报错的实现
Nov 01 #PHP
遍历echsop的region表形成缓存的程序实例代码
Nov 01 #PHP
CI框架无限级分类+递归的实现代码
Nov 01 #PHP
CI框架(ajax分页,全选,反选,不选,批量删除)完整代码详解
Nov 01 #PHP
PHP之十六个魔术方法详细介绍
Nov 01 #PHP
php有效防止图片盗用、盗链的两种方法
Nov 01 #PHP
You might like
PHP设计模式之装饰者模式
2012/02/29 PHP
php自定义加密与解密程序实例
2014/12/31 PHP
php递归遍历多维数组的方法
2015/04/18 PHP
thinkphp3.x中变量的获取和过滤方法详解
2016/05/20 PHP
jQuery之排序组件的深入解析
2013/06/19 Javascript
js控制淡入淡出示例代码
2013/11/12 Javascript
JavaScript实现获取dom中class的方法
2015/02/09 Javascript
基于jQuery实现仿百度首页换肤背景图片切换代码
2015/08/25 Javascript
js倒计时抢购实例
2015/12/20 Javascript
快速使用Bootstrap搭建传送带
2016/05/06 Javascript
探究JavaScript中的五种事件处理程序方式
2016/12/07 Javascript
使用Angular CLI快速创建Angular项目的一些基本概念和写法小结
2018/04/22 Javascript
JavaScript继承定义与用法实践分析
2018/05/28 Javascript
详解js删除数组中的指定元素
2018/10/31 Javascript
后台使用freeMarker和前端使用vue的方法及遇到的问题
2019/06/13 Javascript
移动端手指操控左右滑动的菜单
2019/09/08 Javascript
在Python的Tornado框架中实现简单的在线代理的教程
2015/05/02 Python
Python实现合并字典的方法
2015/07/07 Python
Python编程中的for循环语句学习教程
2015/10/14 Python
答题辅助python代码实现
2018/01/16 Python
Python实现PS图像调整之对比度调整功能示例
2018/01/26 Python
详解python3中的真值测试
2018/08/13 Python
Python的条件锁与事件共享详解
2019/09/12 Python
用python解压分析jar包实例
2020/01/16 Python
PyCharm 2020.1版安装破解注册码永久激活(激活到2089年)
2020/09/24 Python
HTML5等待加载动画效果
2017/07/27 HTML / CSS
HTML5 Canvas——用路径描画线条实例介绍
2013/06/09 HTML / CSS
台湾演唱会订票网站:StubHub台湾
2019/06/11 全球购物
MIXIT官网:俄罗斯最大的化妆品公司之一
2020/01/25 全球购物
成人继续教育实施方案
2014/03/01 职场文书
会计专业求职信范文
2014/03/16 职场文书
户籍证明模板
2014/09/28 职场文书
财务助理岗位职责范本
2014/10/09 职场文书
2016年离婚协议书范文
2016/03/18 职场文书
经典格言警句:没有热忱,世间便无进步
2019/11/13 职场文书
vue实现列表拖拽排序的示例代码
2022/04/08 Vue.js