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
一个用php3编写的简单计数器
Oct 09 PHP
WINDOWS下php5.2.4+mysql6.0+apache2.2.4+ZendOptimizer-3.3.0配置
Mar 28 PHP
php下使用curl模拟用户登陆的代码
Sep 10 PHP
通过Email发送PHP错误的方法
Jul 20 PHP
mac系统下为 php 添加 pcntl 扩展
Aug 28 PHP
php 伪造HTTP_REFERER页面URL来源的三种方法
Sep 22 PHP
php制作基于xml的RSS订阅源功能示例
Feb 08 PHP
PHP 获取 ping 时间的实现方法
Sep 29 PHP
php实现微信原生支付(扫码支付)功能
May 30 PHP
一文掌握PHP Xdebug 本地与远程调试(小结)
Apr 23 PHP
基于PHP实现解密或加密Cloudflar邮箱保护
Jun 24 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循环检测目录是否存在并创建(循环创建目录)
2011/01/06 PHP
PHP中register_shutdown_function函数的基础介绍与用法详解
2017/11/28 PHP
PHP中$GLOBALS与global的区别详解
2019/03/21 PHP
记Laravel调用Gin接口调用formData上传文件的实现方法
2019/12/12 PHP
PHP设计模式(六)桥连模式Bridge实例详解【结构型】
2020/05/02 PHP
laravel与thinkphp之间的区别与优缺点
2021/03/02 PHP
Sample script that deletes a SQL Server database
2007/06/16 Javascript
通过javascript的匿名函数来分析几段简单有趣的代码
2010/06/29 Javascript
你未必知道的JavaScript和CSS交互的5种方法
2014/04/02 Javascript
javascript中递归函数用法注意点
2015/07/30 Javascript
基于jQuery实现歌词滚动版音乐播放器的代码
2016/09/17 Javascript
react实现菜单权限控制的方法
2017/12/11 Javascript
关于AngularJS中ng-repeat不更新视图的解决方法
2018/09/30 Javascript
angular将html代码输出为内容的实例
2018/09/30 Javascript
js回调函数仿360开机
2019/12/26 Javascript
解决vue scoped scss 无效的问题
2020/09/04 Javascript
[00:37]2016完美“圣”典风云人物:rOtk宣传片
2016/12/09 DOTA
python实现超简单端口转发的方法
2015/03/13 Python
利用Python破解斗地主残局详解
2017/06/30 Python
浅谈Python由__dict__和dir()引发的一些思考
2017/10/30 Python
理解python中生成器用法
2017/12/20 Python
python根据url地址下载小文件的实例
2018/12/18 Python
python 寻找离散序列极值点的方法
2019/07/10 Python
python用线性回归预测股票价格的实现代码
2019/09/04 Python
如何在Windows中安装多个python解释器
2020/06/16 Python
python使用自定义钉钉机器人的示例代码
2020/06/24 Python
pip/anaconda修改镜像源,加快python模块安装速度的操作
2021/03/04 Python
HTML5中form如何关闭自动完成功能的方法
2018/07/02 HTML / CSS
英国殿堂级有机护肤品牌:Rodial
2017/04/17 全球购物
工程管理造价应届生求职信
2013/11/13 职场文书
单位门卫岗位职责
2013/12/20 职场文书
学校出纳员岗位职责
2014/03/18 职场文书
第一批党的群众路线教育实践活动总结报告
2014/07/03 职场文书
音乐教师求职信范文
2015/03/20 职场文书
2016廉洁从政心得体会
2016/01/19 职场文书
彩虹社八名人气艺人全新周边限时推出,性转女装男装一次拥有!
2022/04/01 日漫