Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Yii2 FileHelper::findFiles() 返回在指定目录和子目录下找到的文件

Yii2 FileHelper::findFiles() 返回在指定目录和子目录下找到的文件

原创
作者头像
熬夜的花斑狗
发布于 2022-01-10 02:27:14
发布于 2022-01-10 02:27:14
91100
代码可运行
举报
文章被收录于专栏:开发+运维+架构开发+运维+架构
运行总次数:0
代码可运行

注意

Yii 提供许多类来简化常见编码,如对字条串或数组的操作, HTML 代码生成,等等。这些助手类被编写在命名空间 yii\helpers 下,并且 全是静态类 (就是说它们只包含静态属性和静态方法,而且不能实例化)。

可以通过调用其中一个静态方法来使用助手类,如下:

use yii\helpers\FileHelper;

$files = FileHelper::findFiles('uploads',['only'=>['*.jpg']]);

类说明

Class yii\helpers\BaseFileHelper

继承

yii\helpers\BaseFileHelper

子类

yii\helpers\FileHelper

可用版本自

2.0

源码

yii2/BaseFileHelper.php at api · yiichina/yii2 · GitHub

BaseFileHelper 为 yii\helpers\FileHelper 提供了具体的实现方法。

不要使用 BaseFileHelper 类。使用 yii\helpers\FileHelper 类来代替。

findFiles() 公共 静态 方法

返回在指定目录和子目录下找到的文件

public static array findFiles($dir, $options = [])

官方参数说明请查看 返回在指定目录和子目录下找到的文件。

测试例子1(返回所有文件)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$files = FileHelper::findFiles('uploads');

结果

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
array(2) {
  [0]=>
  string(22) "uploads\files\demo.txt"
  [1]=>
  string(23) "uploads\images\demo.jpg"
}

当我们只传递第一个参数(路径)的情况下,会发现返回的是整个目录下的所有文件。

测试例子2(搜索指定后缀文件)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$files = FileHelper::findFiles('uploads',['only'=>['*.jpg']])

结果

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
array(1) {
  [0]=>
  string(23) "uploads\images\demo.jpg"
}

当我们想要查找 uploads 目录下所有以 .jpg 结尾的文件时,第二个参数传递 ['only'=>['*.jpg']]即可返回想要的结果。

测试例子3(排除指定后缀文件)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$files = FileHelper::findFiles('uploads',['except'=>['*.jpg']]);

结果

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
array(1) {
  [0]=>
  string(22) "uploads\files\demo.txt"
}

当我们想要排除 uploads 目录下所有以 .jpg 结尾的文件时,第二个参数传递 ['except'=>['*.jpg']]即可返回想要的结果。

测试例子4(回调函数)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$files = FileHelper::findFiles(
    'uploads',
    // $path 指的是要过滤的完整路径。
    ['filter' => function($path){
        echo $path;
    }]
);

结果

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
uploads\files
uploads\files\demo.txt
uploads\images
uploads\images\demo.jpg

如果不符合项目需求的情况下可以使用回调函数自行处理。

注:uploads目录在web目录下,和index.php入口文件同级。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Yii2 速查表
Yii的数据库读取对象,在PDO之上,DAO后有了Query Builder和AR
双面人
2019/06/25
1.9K0
Yii2文件/图片上传实例
Yii 是一个高性能,基于组件的 PHP 框架,用于快速开发现代 Web 应用程序。 名字 Yii (读作 易)在中文里有“极致简单与不断演变”两重含义, 也可看作 Yes It Is! 的缩写。
OwenZhang
2022/05/26
1.4K0
Yii2文件/图片上传实例
Yii2 使用 RESTful 写API接口 实例
其实 Yii2 框架本身就对 RESTful 是友好支持的,具体可以看官方文档(http://www.yiichina.com/doc/guide/2.0/rest-quick-start),或者去看源码,都是可以的
botkenni
2019/09/02
2.4K0
Yii2 使用 RESTful 写API接口 实例
PHP开发——yii2多图上传组件的使用
最近在使用yii2开发一个表单页面的时候,有多图上传的需求,稍微找了找这方面的组件,基本都安利fileInput这个组件,于是就尝试着使用这个库来完成后端表单页面的多图上传功能。使用的过程中发现还是有不少小细节需要注意的,于是记录一下使用的过程。
Originalee
2018/08/30
1.4K0
yii2多文件上传接口开发(特色,拥有时间目录,数据能保存到数据库中,postman测试,)
如果你想到调通接口,请看我的文章。看完我的调通接口文章后,请在api/web/下新建一个uploads目录
贵哥的编程之路
2022/05/06
5680
yii2多文件上传接口开发(特色,拥有时间目录,数据能保存到数据库中,postman测试,)
python获取指定目录下所有文件名os.walk和os.listdir
os.walk 返回指定路径下所有文件和子文件夹中所有文件列表 其中文件夹下路径如下: import os def file_name_walk(file_dir): for root, di
演化计算与人工智能
2020/08/14
8.6K0
python获取指定目录下所有文件名os.walk和os.listdir
【实用 Python 库】Python glob库:轻松应对文件和目录管理
在Python编程中,我们经常需要处理文件和目录。为了更便捷地处理这些任务,Python提供了glob库,它允许我们根据特定模式匹配文件和目录。本篇博客将详细介绍glob库的用法,并通过实例演示它的各种功能。
繁依Fanyi
2023/10/12
1.8K0
(59) 文件和目录操作 / 计算机程序的思维逻辑
前面两节我们介绍了如何通过流的方式读写文件内容,本节我们介绍文件元数据和目录的一些操作。 文件和目录操作最终是与操作系统和文件系统相关的,不同系统的实现是不一样的,但Java中的java.io.File类提供了统一的接口,底层它会通过本地方法调用操作系统和文件系统的具体实现,本节,我们就来介绍File类。 File类中的操作大概可以分为三类: 文件元数据 文件操作 目录操作 在介绍这些操作之前,我们先来看下File的构造方法。 构造方法 File既可以表示文件,也可以表示目录,它的主要构造方法有: pu
swiftma
2018/01/31
8730
利用.htaccess绑定子域名到子目录
一般情况下,一台虚拟主机只允许绑定一个域名到根目录下。 使用过emlog的人 应该对其中的静态链接应该不陌生 它就是典型的利用.htaccess文件来对网页进行域名转向。 利用.htaccess绑定域名到子目录,前提你的空间服务器必须支持apache的rewrite功能,只有这样才能使用.htaccess。如果你的空间是Linux服务器 一般默认都开启了的。即可以实现绑定域名到子目录、一个空间多个站点。 下面是以 link.52ecy.cn 绑定到子目录link为例的.htaccess代码. <I
Youngxj
2018/06/06
3.6K0
Go内嵌静态资源
最常见的,比如一个混编网址的后端程序,本来需要把程序与它所需要的静态资源(html模版、css、js、图片)一起上传至生产服务器,同时还需要正确配置静态资源在服务器中的路径让程序能正常访问.现在我们将这些资源全部嵌入到程序中,部署的时候只需要部署一个二进制文件,配置也只针对这个程序本身,部署的流程大大简化.
mousemin
2023/06/10
7640
Go内嵌静态资源
使用FilenameFilter来找出目录下指定后缀的文件
在项目中需要查找指定目录下特定后缀的文件,在jdk官网上查看资料时找到了FilenameFilter这个类,怎么用也写了,但是就是没给个例子,对有些人实在有些不方便,这也是写这篇文章的初衷,虽然简单但希望能帮到需要的小伙伴们
johnhuster的分享
2022/03/28
4750
从配置文件的角度去了解Yii2
Yii2是一个奇特的框架,其牺牲了现在盛行的解耦设计,用一个高度耦合的结构提供给开发者一个方便的几类抽象,Application,Module,Component,甚至是ServiceLocator.想让对象具备哪类特征就直接继承相应的对象,想要改变他就去复写父类的方法,虽然不符合开放封闭原则,单一职责原则,李氏替换原则等面向对象设计原则,但的确很方便.
botkenni
2019/09/02
1.6K0
Yii2 源码分析 - 入口文件执行流程
以 yii 2.0.14 高级版的 frontend 为例,从 frontend/web/index.php 开始
botkenni
2019/09/02
1.2K0
Yii2 源码分析 - 入口文件执行流程
Yii2 中的模块modules
然后需要把模块ID添加到所属应用中,打开配置文件config/web.php,在modules对应的数组中添加元素’admin‘,代码如下
友儿
2022/09/11
1.2K0
自动删除当前目录及其子目录下的所有PetaLinux工程的build目录下的临时文件,释放2TB硬盘空间
执行脚本peta-del-build-temp.sh,自动删除当前目录及其子目录下的所有PetaLinux工程的build目录下的临时文件,最后从历年遗留的100多个工程中释放了2TB硬盘空间。
hankfu
2022/09/30
7730
Yii2中关于组件的注册以及创建的方法详解
了解yii组件注册与创建的过程,并发现原来yii组件注册之后并不是马上就去创建的,而是待到实际需要使用某个组件的时候再去创建对应的组件实例的。本文大概记录一下这个探索的过程。
botkenni
2019/09/02
8750
Yii2中关于组件的注册以及创建的方法详解
Python之文件查找模块fnmatch、glob及实际案例
在Python自动化运维开发过程中,经常会有查找各种文件的需求;那么,本文将介绍如何使用Python查找特定类型的文件,包括使用字符串匹配文件名的标准库fnmatch和glob,还会介绍遍历目录树的函数os.walk通过这些函数以及前面介绍的获取文件的属性,可以做很多有用的事情。
SEian.G
2021/04/09
1.9K0
yii2开发后记
基础总结 1.修改默认控制器/方法 yii默认是site控制器,可以在web.php中设置$config中的'defaultRoute'='xxxx';使用自定义默认的控制器。也可以改写Yii::$a
枕边书
2018/01/04
3.4K0
Python小工具-复制嵌套目录下的多个word文档到指定目录
有多个文件目录,每个目录下都有多个文件和子目录,现在需要把这些目录中的word文档提取处理,并放到当前文件夹下,
用户2225445
2023/10/16
4120
Python小工具-复制嵌套目录下的多个word文档到指定目录
windows 技术篇 - cmd命令查看当前目录下的所有文件和文件夹以及所有子目录下的文件,dir命令的使用方法
dir /b 可以查看当前路径下的所有文件和文件夹。 dir /b /s 可以查看当前路径下的所有文件和文件夹以及子目录下的文件。
小蓝枣
2021/12/01
26.5K0
windows 技术篇 - cmd命令查看当前目录下的所有文件和文件夹以及所有子目录下的文件,dir命令的使用方法
推荐阅读
相关推荐
Yii2 速查表
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验