想要获取某个目录下指定后缀的所有文件(包含子目录中的文件),这是一个很常见的小需求,使用PHP应该怎么实现呢?

代码

class Dir

{

/**

* 获取文件夹内指定后缀的所有文件

* @param array $result 结果集

* @param string $dir 指定目录

* @param array $filter 后缀过滤,为空即全部文件

*/

public static function getFiles(&$result, $dir, $filter = [])

{

$files = array_diff(scandir($dir), array('.', '..', '__MACOSX'));

if (is_array($files)) {

foreach ($files as $value) {

if (is_dir($dir . '/' . $value)) {

self::getFiles($result, $dir . '/' . $value, $filter);

} else {

$path_info = pathinfo($dir . '/' . $value);

$extension = array_key_exists('extension', $path_info) ? $path_info['extension'] : '';

if (empty($filter) || (!empty($filter) && in_array($extension, $filter))) {

$result[] = $dir . '/' . $value;

}

}

}

}

}

}

使用

获取目录/opt/data/uploads下所有后缀为'pdf', 'doc', 'docx'的文件,目录下包含多层子目录,各种格式的上传文件,结果存在数组$files里面。

$files = [];

$path = '/opt/data/uploads';

$extensions = ['pdf', 'doc', 'docx'];

Dir::getFiles($files, $path, $extensions);

非常方便,代码为项目中自用,如有bug望留言告知。

PHP获取目录及子目录下指定后缀的所有文件

更多精彩,敬请关注本博微信公众号:hsu1943

php 遍历目录下的子目录文件,PHP获取目录及子目录下指定后缀的所有文件相关推荐

  1. python文件操作2:在指定目录下查找指定后缀名的文件

    在指定目录下查找指定后缀名的文件,要查找所有子目录,返回文件路径名列表 import osdef get_full_filelist(base_dir='.', target_ext='') -> ...

  2. java实现ftp连接、登陆、上传、下载、删除文件、获取目录、文件列表

    全栈工程师开发手册 (作者:栾鹏) java教程全解 java实现ftp连接.登陆.上传.下载.删除文件.获取目录.文件列表等操作. 本地调试,首先需要在本机上开启ftp服务和ftp站点. 测试代码 ...

  3. python删除指定后缀名的文件

    python删除指定后缀名的文件 最近ev加密视频转成mp4后,一个个删除ev文件很麻烦,所以决定写个脚本删除掉 # -*- code:utf-8 -*- """ @fi ...

  4. Go 学习笔记(49)— Go 标准库之 io/ioutil(读写文件、获取目录下的文件和子目录、创建临时目录和文件)

    1. 简要概述 import "io/ioutil" 包 io/ioutil 实现一些 I/O 实用程序函数. 2. 相关函数 2.1 func ReadAll func Read ...

  5. springboot读取src下文件_springboot获取src/main/resource下的文件

    问题如下: maven构建的springboot工程下的,文件路径 希望web端能够下载这里的"assess_remplate.docx"文件. 解决: 1.通过resource获 ...

  6. Windows删除指定时间之前指定后缀名的文件

    时间判定标准:文件创建时间 实例:删除 D:\backup 目录下(包括子文件夹),7天前 ".bak"后缀名的文件及30天前后缀名为 "*.log" 的文件 ...

  7. 批量给文件夹名加序号前缀或者序号后缀,对文件夹按序号进行重命名

    概要:「我的ABC软件工具箱」实现了强大的批量编排文件夹序号的功能,用户可以根据需要给已有的文件夹加上统一的前缀或者后缀,达到对原文件夹进行重命名并按序排列的目的.可以支持数字序号.日期时间序号以及随 ...

  8. python获取文件夹下文件_Python 获取目录下的文件列表与内容

    下面的python例子是列举用户目录下面的文件 import os import sys #info=os.getcwd() #listfile=os.listdir(os.getcwd()) inf ...

  9. python获取文件夹下文件_Python获取目录下的所有文件

    F5运行程序,Shell打印出当前目录下所有文件列表: ['choosepx.py', 'code.py', 'dir.py', 'DLLs', 'Doc', 'empty_book.xlsx', ' ...

最新文章

  1. 使用NeMo快速完成NLP中的信息抽取任务 | 英伟达NLP公开课
  2. 微信公众平台开发:进阶篇(Web App开发入门)
  3. Java 高并发_JAVA并发编程与高并发解决方案 JAVA高并发项目实战课程 没有项目经验的朋友不要错过!...
  4. update module
  5. linux之file命令总结
  6. 造大专计算机学历,广昌县职业技术学校计算机应用专业助您 掌握一技之长获大专学历...
  7. 全网最细之instanceof和类型转换
  8. 使用RouteDebugger对MVC路由进行调试
  9. [Unity3D]Unity3D圣骑士当游戏开发商遭遇Mecanim动画系统
  10. 从来没见过这么多的资源~~好好找找吧,一定有你需要的
  11. Akka-CQRS(15)- Http标准安全解决方案:OAuth2+JWT
  12. ELK 日志分析系统
  13. 关于浏览器及其内核以及什么是浏览器兼容性
  14. 金山WPS C++ 客户端 实习面试面经
  15. GIT上优秀的IOS框架
  16. 跨语言rpc框架Thrift
  17. mysql数据库管理维护_深入浅出MySQL 数据库开发 优化与管理维护 第3版
  18. 关于spoolsv.exe 报错,并打印服务停止的问题
  19. python五子棋程序教程_Python 五子棋 编程
  20. 【操作系统】某寺庙,住着一个老和尚和若干小和尚,有一个水缸,由小和尚提水入缸供老和尚饮用。水缸可以容纳10桶水,水取自同一口井中,由于水井口窄,每次只能容纳一个水桶取水,水桶总数为3个。每次往水缸中倒

热门文章

  1. python list根据值返回位置
  2. python 发送邮件不显示附件_求助:写python脚本发 带有附件的邮件, 收到邮件后,发现附件直接显示在屏幕上了,而不是以附件形式...
  3. java怎么将图片文件转流并在jsp前端显示_web前端—面试题汇总(001-005)
  4. [VMM 2008虚拟化之初体验-1] 准备环境
  5. JS中同名函数有效执行顺序
  6. Mac OS X 显示和隐藏文件
  7. webpack配置:css文件打包、JS压缩打包和HTML文件发布
  8. python概念-Socket到底有多骚
  9. leetcode 144. Binary Tree Preorder Traversal ----- java
  10. 查看一个进程对应的端口号