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中的加密功能
Oct 09 PHP
zend framework多模块多布局配置
Feb 26 PHP
PHP中的生成XML文件的4种方法分享
Oct 06 PHP
探讨php中header的用法详解
Jun 07 PHP
PHPThumb图片处理实例
May 03 PHP
PHP动态编译出现Cannot find autoconf的解决方法
Nov 05 PHP
手把手编写PHP框架 深入了解MVC运行流程
Sep 19 PHP
修改yii2.0用户登录使用的user表为其它的表实现方法(推荐)
Aug 01 PHP
PHP getNamespaces()函数讲解
Feb 03 PHP
在Laravel5中正确设置文件权限的方法
May 22 PHP
Laravel框架控制器的request与response用法示例
Sep 30 PHP
php 的多进程操作实践案例分析
Feb 28 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提取数据库内容中的图片地址并循环输出
2010/03/21 PHP
php笔记之:初探PHPcms模块开发介绍
2013/04/26 PHP
使用PHP获取汉字的拼音(全部与首字母)
2013/06/27 PHP
php实现的百度搜索某地天气的小偷代码
2014/04/23 PHP
MC Dialog js弹出层 完美兼容多浏览器(5.6更新)
2010/05/06 Javascript
javascript下数值型比较难点说明
2010/06/07 Javascript
Dom与浏览器兼容性说明
2010/10/25 Javascript
javascipt匹配单行和多行注释的正则表达式
2013/11/20 Javascript
Javascript字符串拼接小技巧(推荐)
2016/06/02 Javascript
谈谈JS中常遇到的浏览器兼容问题和解决方法
2016/12/17 Javascript
nodejs实现发出蜂鸣声音(系统报警声)的方法
2017/01/18 NodeJs
Angularjs+bootstrap+table多选(全选)支持单击行选中实现编辑、删除功能
2017/03/27 Javascript
利用Ionic2 + angular4实现一个地区选择组件
2017/07/27 Javascript
es6中的解构赋值、扩展运算符和rest参数使用详解
2017/09/28 Javascript
vue 中directive功能的简单实现
2018/01/05 Javascript
webpack配置导致字体图标无法显示的解决方法
2018/03/06 Javascript
关于vue v-for循环解决img标签的src动态绑定问题
2018/09/18 Javascript
vue-rx的初步使用教程
2018/09/21 Javascript
vue实现输入框自动跳转功能
2020/05/20 Javascript
python直接访问私有属性的简单方法
2016/07/25 Python
Python编程之event对象的用法实例分析
2017/03/23 Python
python numpy 按行归一化的实例
2019/01/21 Python
利用python脚本如何简化jar操作命令
2019/02/24 Python
python3调用windows dos命令的例子
2019/08/14 Python
python防止随意修改类属性的实现方法
2019/08/21 Python
墨西哥巴士车票在线购买:ClickBus
2018/03/27 全球购物
Calzedonia美国官网:意大利风格袜子、打底裤和沙滩装
2018/07/19 全球购物
自荐信格式技巧有哪些呢
2013/11/19 职场文书
文明礼仪标语
2014/06/13 职场文书
最新离婚协议书范本
2014/08/19 职场文书
毕业实习自我鉴定范文2014
2014/09/26 职场文书
2015年消费者权益日活动总结
2015/02/09 职场文书
在职人员跳槽求职信
2015/03/20 职场文书
2015年小学远程教育工作总结
2015/07/28 职场文书
幼儿园教师暑期培训心得体会
2016/01/09 职场文书
创业计划书之面包店
2019/09/12 职场文书