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 相关文章推荐
织梦模板标记简介
Mar 11 PHP
使用 eAccelerator加速PHP代码的方法
Sep 30 PHP
如何使用php判断所处服务器操作系统的类型
Jun 20 PHP
不使用php api函数实现数组的交换排序示例
Apr 13 PHP
destoon复制新模块的方法
Jun 21 PHP
PHP关于htmlspecialchars、strip_tags、addslashes的解释
Jul 04 PHP
PHP生成唯一订单号
Jul 05 PHP
浅谈PHP链表数据结构(单链表)
Jun 08 PHP
php数据库操作model类(使用__call方法)
Nov 16 PHP
基于CI(CodeIgniter)框架实现购物车功能的方法
Apr 09 PHP
ThinkPHP5.1表单令牌Token失效问题的解决
Mar 22 PHP
php+mysql开发中的经验与常识小结
Mar 25 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
使用ThinkPHP自带的Http类下载远程图片到本地的实现代码
2011/08/02 PHP
PHP输出数组中重名的元素的几种处理方法
2012/09/05 PHP
使用php判断服务器是否支持Gzip压缩功能
2013/09/24 PHP
修改ThinkPHP缓存为Memcache的方法
2014/06/25 PHP
PHP过滤黑名单关键字的方法
2014/12/01 PHP
PHP加密解密类实例分析
2015/04/20 PHP
浅谈ThinkPHP5.0版本和ThinkPHP3.2版本的区别
2017/06/17 PHP
JS获取select的value和text值的简单实例
2014/02/26 Javascript
jquery.uploadify插件在chrome浏览器频繁崩溃解决方法
2015/03/01 Javascript
Js和JQuery获取鼠标指针坐标的实现代码分享
2015/05/25 Javascript
Bootstrap每天必学之媒体对象
2015/11/30 Javascript
javascript实现无缝上下滚动特效
2015/12/16 Javascript
Bootstrap+jfinal退出系统弹出确认框的实现方法
2016/05/30 Javascript
解决Window10系统下Node安装报错的问题分析
2016/12/13 Javascript
Angular2-primeNG文件上传模块FileUpload使用详解
2017/01/14 Javascript
浅析 NodeJs 的几种文件路径
2017/06/07 NodeJs
Nodejs回调加超时限制两种实现方法
2017/06/09 NodeJs
JavaScript实现的原生态兼容IE6可调可控滚动文字功能详解
2017/09/19 Javascript
在vue项目创建的后初始化首次使用stylus安装方法分享
2018/01/25 Javascript
浅谈MUI框架中加载外部网页或服务器数据的方法
2018/01/31 Javascript
JavaScript实现多叉树的递归遍历和非递归遍历算法操作示例
2018/02/08 Javascript
electron-vue利用webpack打包实现多页面的入口文件问题
2019/05/12 Javascript
Python对象转JSON字符串的方法
2016/04/27 Python
Python实现读取文件最后n行的方法
2017/02/23 Python
python实现用户管理系统
2018/01/10 Python
python解决pandas处理缺失值为空字符串的问题
2018/04/08 Python
matplotlib给子图添加图例的方法
2018/08/03 Python
Python3简单爬虫抓取网页图片代码实例
2019/08/26 Python
python的flask框架难学吗
2020/07/31 Python
PatPat香港:婴童服饰和亲子全家装在线购物
2020/09/27 全球购物
小学教师自我鉴定
2013/11/07 职场文书
大学生水果店创业计划书
2014/01/28 职场文书
春节晚会开场白
2015/05/29 职场文书
新闻简讯格式及范文
2015/07/22 职场文书
幼儿园教师教学反思
2016/03/02 职场文书
Vertica集成Apache Hudi重磅使用指南
2022/03/31 Servers