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
phpmyadmin的#1251问题
Nov 25 PHP
网友原创的PHP模板类代码
Sep 07 PHP
PHPWind与Discuz截取字符函数substrs与cutstr性能比较
Dec 05 PHP
php 模拟POST提交的2种方法详解
Jun 17 PHP
PHP中unset,array_splice删除数组中元素的区别
Jul 28 PHP
PHP实现ftp上传文件示例
Aug 21 PHP
PHP中file_exists()判断中文文件名无效的解决方法
Nov 12 PHP
PHP封装的非对称加密RSA算法示例
May 28 PHP
PHP实现redis限制单ip、单用户的访问次数功能示例
Jun 16 PHP
Laravel 关联模型-关联新增和关联更新的方法
Oct 10 PHP
Laravel获取所有的数据库表及结构的方法
Oct 10 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/09/29 PHP
无需重新编译php加入ftp扩展的解决方法
2013/02/07 PHP
Jqyery中同等与js中windows.onload的应用
2011/05/10 Javascript
JavaScript高级程序设计阅读笔记(十六) javascript检测浏览器和操作系统-detect.js
2012/08/14 Javascript
ExtJs纵坐标值重复问题的解决方法
2014/02/27 Javascript
js写的方法实现上传图片之后查看大图
2014/03/05 Javascript
jQuery实现跨域iframe接口方法调用
2015/03/14 Javascript
深入理解JQuery循环绑定事件
2016/06/02 Javascript
浅析jQuery 3.0中的Data
2016/06/14 Javascript
第九篇Bootstrap导航菜单创建步骤详解
2016/06/21 Javascript
Extjs 点击复选框在表格中增加相关信息行
2016/07/12 Javascript
web前端页面生成exe可执行文件的方法
2018/02/08 Javascript
jQuery实现百度图片移入移出内容提示框上下左右移动的效果
2018/06/05 jQuery
vue项目中使用Svg的方法
2018/10/24 Javascript
vue自定义指令directive的使用方法
2019/04/07 Javascript
如何使用gpu.js改善JavaScript的性能
2020/12/01 Javascript
[02:44]DOTA2英雄基础教程 魅惑魔女
2014/01/07 DOTA
python装饰器decorator介绍
2014/11/21 Python
详解Python的三种可变参数
2019/05/08 Python
python实现的按要求生成手机号功能示例
2019/10/08 Python
Python3+Requests+Excel完整接口自动化测试框架的实现
2019/10/11 Python
Django静态资源部署404问题解决方案
2020/05/11 Python
零基础小白多久能学会python
2020/06/22 Python
Python闭包装饰器使用方法汇总
2020/06/29 Python
新西兰最大的品牌运动鞋购物网站:Platypus NZ
2017/10/27 全球购物
.net软件工程师应聘上机试题
2015/03/10 面试题
财务助理岗位职责
2013/11/10 职场文书
演讲稿怎么写
2014/01/07 职场文书
个人自我剖析材料
2014/02/07 职场文书
《维生素c的故事》教学反思
2014/02/18 职场文书
2014年党建工作总结
2014/11/11 职场文书
2014年保卫科工作总结
2014/12/05 职场文书
新员工实习期个人工作总结
2015/10/15 职场文书
Vue3中的Refs和Ref详情
2021/11/11 Vue.js
Java 异步任务计算FutureTask
2022/04/28 Java/Android
SQL语句中EXISTS的详细用法大全
2022/06/25 MySQL