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 相关文章推荐
做一个有下拉功能的留言版
Oct 09 PHP
php 远程图片保存到本地的函数类
Dec 08 PHP
php 过滤器实现代码
Aug 09 PHP
php INI配置文件的解析实现分析
Jan 04 PHP
PHP中全局变量global和$GLOBALS[]的区别分析
Aug 06 PHP
php去除HTML标签实例
Nov 06 PHP
PHP函数microtime()用法与说明
Dec 04 PHP
php面向对象中的魔术方法中文说明
Mar 04 PHP
thinkPHP连接sqlite3数据库的实现方法(附Thinkphp代码生成器下载)
May 27 PHP
PHP面向对象中new self()与 new static()的区别浅析
Aug 17 PHP
基于php流程控制语句和循环控制语句(讲解)
Oct 23 PHP
PHP加MySQL消息队列深入理解
Feb 27 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
MYSQL数据库初学者使用指南
2006/11/16 PHP
深入php socket的讲解与实例分析
2013/06/13 PHP
php获取从百度搜索进入网站的关键词的详细代码
2014/01/08 PHP
php基于Snoopy解析网页html的方法
2015/07/09 PHP
PHP屏蔽关键字实现方法
2016/11/17 PHP
php生成0~1随机小数的方法(必看)
2017/04/05 PHP
PHP十六进制颜色随机生成器功能示例
2017/07/24 PHP
PHP crypt()函数的用法讲解
2019/02/15 PHP
如何让动态插入的javascript脚本代码跑起来。
2007/01/09 Javascript
jquery中ajax学习笔记4
2011/10/16 Javascript
jsonp原理及使用
2013/10/28 Javascript
编写js扩展方法判断一个数组中是否包含某个元素
2013/11/08 Javascript
JS生成随机字符串的多种方法
2014/06/10 Javascript
jquery实现全选、反选、获得所有选中的checkbox
2020/09/13 Javascript
JavaScript函数柯里化原理与用法分析
2017/03/31 Javascript
JavaScript实现网页头部进度条刷新
2017/04/16 Javascript
Node.js中Bootstrap-table的两种分页的实现方法
2017/09/18 Javascript
jQuery分组选择器简单用法示例
2019/04/04 jQuery
layui-table获得当前行的上/下一行数据的例子
2019/09/24 Javascript
jQuery与原生JavaScript选择HTML元素集合用法对比分析
2019/11/26 jQuery
Python实现配置文件备份的方法
2015/07/30 Python
Python实现将json文件中向量写入Excel的方法
2018/03/26 Python
python绘制地震散点图
2019/06/18 Python
Python虚拟环境venv用法详解
2020/05/25 Python
用python实现名片管理系统
2020/06/18 Python
python3 中时间戳、时间、日期的转换和加减操作
2020/07/14 Python
Python中猜拳游戏与猜筛子游戏的实现方法
2020/09/04 Python
澳大利亚工具仓库:Tools Warehouse
2018/10/15 全球购物
制定岗位职责的原则
2013/11/08 职场文书
环保倡议书50字
2014/05/15 职场文书
早读课迟到检讨书
2014/09/25 职场文书
体育运动会广播稿
2014/10/05 职场文书
三方股东合作协议书
2014/10/28 职场文书
红领巾广播站广播稿
2015/08/19 职场文书
pandas提升计算效率的一些方法汇总
2021/05/30 Python
Oracle11g r2 卸载干净重装的详细教程(亲测有效已重装过)
2021/06/04 Oracle