php 遍历目录下的子目录文件,PHP获取目录及子目录下指定后缀的所有文件
想要获取某个目录下指定后缀的所有文件(包含子目录中的文件),这是一个很常见的小需求,使用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获取目录及子目录下指定后缀的所有文件相关推荐
- python文件操作2:在指定目录下查找指定后缀名的文件
在指定目录下查找指定后缀名的文件,要查找所有子目录,返回文件路径名列表 import osdef get_full_filelist(base_dir='.', target_ext='') -> ...
- java实现ftp连接、登陆、上传、下载、删除文件、获取目录、文件列表
全栈工程师开发手册 (作者:栾鹏) java教程全解 java实现ftp连接.登陆.上传.下载.删除文件.获取目录.文件列表等操作. 本地调试,首先需要在本机上开启ftp服务和ftp站点. 测试代码 ...
- python删除指定后缀名的文件
python删除指定后缀名的文件 最近ev加密视频转成mp4后,一个个删除ev文件很麻烦,所以决定写个脚本删除掉 # -*- code:utf-8 -*- """ @fi ...
- Go 学习笔记(49)— Go 标准库之 io/ioutil(读写文件、获取目录下的文件和子目录、创建临时目录和文件)
1. 简要概述 import "io/ioutil" 包 io/ioutil 实现一些 I/O 实用程序函数. 2. 相关函数 2.1 func ReadAll func Read ...
- springboot读取src下文件_springboot获取src/main/resource下的文件
问题如下: maven构建的springboot工程下的,文件路径 希望web端能够下载这里的"assess_remplate.docx"文件. 解决: 1.通过resource获 ...
- Windows删除指定时间之前指定后缀名的文件
时间判定标准:文件创建时间 实例:删除 D:\backup 目录下(包括子文件夹),7天前 ".bak"后缀名的文件及30天前后缀名为 "*.log" 的文件 ...
- 批量给文件夹名加序号前缀或者序号后缀,对文件夹按序号进行重命名
概要:「我的ABC软件工具箱」实现了强大的批量编排文件夹序号的功能,用户可以根据需要给已有的文件夹加上统一的前缀或者后缀,达到对原文件夹进行重命名并按序排列的目的.可以支持数字序号.日期时间序号以及随 ...
- python获取文件夹下文件_Python 获取目录下的文件列表与内容
下面的python例子是列举用户目录下面的文件 import os import sys #info=os.getcwd() #listfile=os.listdir(os.getcwd()) inf ...
- python获取文件夹下文件_Python获取目录下的所有文件
F5运行程序,Shell打印出当前目录下所有文件列表: ['choosepx.py', 'code.py', 'dir.py', 'DLLs', 'Doc', 'empty_book.xlsx', ' ...
最新文章
- 使用NeMo快速完成NLP中的信息抽取任务 | 英伟达NLP公开课
- 微信公众平台开发:进阶篇(Web App开发入门)
- Java 高并发_JAVA并发编程与高并发解决方案 JAVA高并发项目实战课程 没有项目经验的朋友不要错过!...
- update module
- linux之file命令总结
- 造大专计算机学历,广昌县职业技术学校计算机应用专业助您 掌握一技之长获大专学历...
- 全网最细之instanceof和类型转换
- 使用RouteDebugger对MVC路由进行调试
- [Unity3D]Unity3D圣骑士当游戏开发商遭遇Mecanim动画系统
- 从来没见过这么多的资源~~好好找找吧,一定有你需要的
- Akka-CQRS(15)- Http标准安全解决方案:OAuth2+JWT
- ELK 日志分析系统
- 关于浏览器及其内核以及什么是浏览器兼容性
- 金山WPS C++ 客户端 实习面试面经
- GIT上优秀的IOS框架
- 跨语言rpc框架Thrift
- mysql数据库管理维护_深入浅出MySQL 数据库开发 优化与管理维护 第3版
- 关于spoolsv.exe 报错,并打印服务停止的问题
- python五子棋程序教程_Python 五子棋 编程
- 【操作系统】某寺庙,住着一个老和尚和若干小和尚,有一个水缸,由小和尚提水入缸供老和尚饮用。水缸可以容纳10桶水,水取自同一口井中,由于水井口窄,每次只能容纳一个水桶取水,水桶总数为3个。每次往水缸中倒
热门文章
- python list根据值返回位置
- python 发送邮件不显示附件_求助:写python脚本发 带有附件的邮件, 收到邮件后,发现附件直接显示在屏幕上了,而不是以附件形式...
- java怎么将图片文件转流并在jsp前端显示_web前端—面试题汇总(001-005)
- [VMM 2008虚拟化之初体验-1] 准备环境
- JS中同名函数有效执行顺序
- Mac OS X 显示和隐藏文件
- webpack配置:css文件打包、JS压缩打包和HTML文件发布
- python概念-Socket到底有多骚
- leetcode 144. Binary Tree Preorder Traversal ----- java
- 查看一个进程对应的端口号