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_Flame(Version:Progress)的原代码
Oct 09 PHP
php获得当前的脚本网址
Dec 10 PHP
php 编写安全的代码时容易犯的错误小结
May 20 PHP
浅析Mysql 数据回滚错误的解决方法
Aug 05 PHP
php上传文件中文文件名乱码的解决方法
Nov 01 PHP
php压缩和解压缩字符串的方法
Mar 14 PHP
分享PHP源码批量抓取远程网页图片并保存到本地的实现方法
Dec 01 PHP
PHP计算当前坐标3公里内4个角落的最大最小经纬度实例
Feb 26 PHP
PHP面向对象自动加载机制原理与用法分析
Oct 14 PHP
PHP数组生成XML格式数据的封装类实例
Nov 10 PHP
php 三元运算符实例详细介绍
Dec 15 PHP
PHP实现的迪科斯彻(Dijkstra)最短路径算法实例
Sep 16 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+html5使用FormData对象提交表单及上传图片的方法
2015/02/11 PHP
解析 thinkphp 框架中的部分方法
2017/05/07 PHP
使用TextRange获取输入框中光标的位置的代码
2007/03/08 Javascript
JS模拟的QQ面板上的多级可展开的菜单
2009/10/10 Javascript
JSCode all of Brower 全局屏蔽网页右键功能 具体实现
2013/06/05 Javascript
浅谈javascript中基本包装类型
2015/06/03 Javascript
js实现图片上传并正常显示
2015/12/19 Javascript
JS 动态判断PC和手机浏览器实现代码
2016/09/21 Javascript
学习使用Bootstrap栅格系统
2017/05/11 Javascript
bootstrap table实现双击可编辑、添加、删除行功能
2017/09/27 Javascript
vue.js开发实现全局调用的MessageBox组件实例代码
2017/11/22 Javascript
使用Vue制作图片轮播组件思路详解
2018/03/21 Javascript
Vue.js获取被选择的option的value和text值方法
2018/08/24 Javascript
关于layui 弹出层一闪而过就消失的解决方法
2019/09/09 Javascript
layui table 表格模板按钮的实例代码
2019/09/21 Javascript
node.js基础知识汇总
2020/08/25 Javascript
原生JS实现pc端轮播图效果
2020/12/21 Javascript
[15:28]DOTA2 HEROS教学视频教你分分钟做大人-剧毒术士
2014/06/13 DOTA
使用Python写个小监控
2016/01/27 Python
利用python发送和接收邮件
2016/09/27 Python
有趣的python小程序分享
2017/12/05 Python
Python3使用turtle绘制超立方体图形示例
2018/06/19 Python
Python学习笔记之变量、自定义函数用法示例
2019/05/28 Python
Python‘==‘ 及 ‘is‘相关原理解析
2020/09/05 Python
澳大利亚宠物商店:Petbarn
2017/11/18 全球购物
北美领先的智能产品购物网站:Wellbots
2018/06/11 全球购物
品恩科技软件测试面试题
2014/10/26 面试题
销售人员中英文自荐信
2013/09/22 职场文书
竞聘书模板
2014/03/31 职场文书
2014年幼儿园小班工作总结
2014/12/04 职场文书
介绍信样本
2015/01/31 职场文书
离婚协议书范文2016
2016/03/18 职场文书
配置nginx 重定向到系统维护页面
2021/06/08 Servers
使用CSS实现一个搜索引擎的原理解析
2021/09/25 HTML / CSS
Kubernetes控制节点的部署
2022/04/01 Servers
微信告警的zabbix监控系统 监控整个NGINX集群
2022/04/18 Servers