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 相关文章推荐
PHP5在Apache下的两种模式的安装
Sep 05 PHP
用session做客户验证时的注意事项
Oct 09 PHP
解析PHP中的正则表达式以及模式匹配
Jun 19 PHP
PHP根据传入参数合并多个JS和CSS文件的简单实现
Jun 13 PHP
PHP数字和字符串ID互转函数(类似优酷ID)
Jun 30 PHP
Codeigniter框架实现获取分页数据和总条数的方法
Dec 05 PHP
WordPress中邮件的一些修改和自定义技巧
Dec 15 PHP
PHP使用trim函数去除字符串左右空格及特殊字符实例
Jan 07 PHP
thinkphp中字符截取函数msubstr()用法分析
Jan 09 PHP
Joomla开启SEF的方法
May 04 PHP
PHP Oauth授权和本地加密实现方法
Aug 12 PHP
Laravel中七个非常有用但很少人知道的Carbon方法
Sep 21 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的面向对象编程
2006/10/09 PHP
symfony表单与页面实现技巧
2015/01/26 PHP
Laravel5.1数据库连接、创建数据库、创建model及创建控制器的方法
2016/03/29 PHP
总结的一些PHP开发中的tips(必看篇)
2017/03/24 PHP
php生成毫秒时间戳的实例讲解
2017/09/22 PHP
基于jquery实现的表格分页实现代码
2011/06/21 Javascript
jQuery代码优化 选择符篇
2011/11/01 Javascript
浅谈javascript的原型继承
2012/07/25 Javascript
JQUERY dialog的用法详细解析
2013/12/19 Javascript
JavaScript中的无阻塞加载性能优化方案
2014/10/10 Javascript
Windows 系统下设置Nodejs NPM全局路径
2016/04/26 NodeJs
使用vue.js制作分页组件
2016/06/27 Javascript
AngularJS基础 ng-click 指令示例代码
2016/08/01 Javascript
Javascript动画效果(3)
2016/10/11 Javascript
js 获取json数组里面数组的长度实例
2017/10/31 Javascript
利用Blob进行文件上传的完整步骤
2018/08/02 Javascript
vue中使用router全局守卫实现页面拦截的示例
2020/10/23 Javascript
Mac下Supervisor进程监控管理工具的安装与配置
2014/12/16 Python
Python3.6 Schedule模块定时任务(实例讲解)
2017/11/09 Python
对python中array.sum(axis=?)的用法介绍
2018/06/28 Python
python绘制中国大陆人口热力图
2018/11/07 Python
Python 运行 shell 获取输出结果的实例
2019/01/07 Python
python对文件目录的操作方法实例总结
2019/06/24 Python
Python urlopen()和urlretrieve()用法解析
2020/01/07 Python
python实现连连看游戏
2020/02/14 Python
基于TensorBoard中graph模块图结构分析
2020/02/15 Python
python实现输入三角形边长自动作图求面积案例
2020/04/12 Python
django正续或者倒序查库实例
2020/05/19 Python
Python astype(np.float)函数使用方法解析
2020/06/08 Python
详解Python调用系统命令的六种方法
2021/01/28 Python
布鲁明戴尔百货店:Bloomingdale’s
2016/12/21 全球购物
美国眼镜网站:EyeBuyDirect
2017/04/13 全球购物
幼儿老师求职信
2014/06/30 职场文书
暑假安全保证书
2015/02/28 职场文书
2016年基层党组织创先争优承诺书
2016/03/25 职场文书
Javascript的promise,async和await的区别详解
2022/03/24 Javascript