前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Yii2 FileHelper::findFiles() 返回在指定目录和子目录下找到的文件

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

原创
作者头像
熬夜的花斑狗
发布2022-01-10 10:27:14
8120
发布2022-01-10 10:27:14
举报
文章被收录于专栏:开发+运维+架构

注意

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
复制
$files = FileHelper::findFiles('uploads');

结果

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

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

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

代码语言:javascript
复制
$files = FileHelper::findFiles('uploads',['only'=>['*.jpg']])

结果

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

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

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

代码语言:javascript
复制
$files = FileHelper::findFiles('uploads',['except'=>['*.jpg']]);

结果

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

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

测试例子4(回调函数)

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

结果

代码语言:javascript
复制
uploads\files
uploads\files\demo.txt
uploads\images
uploads\images\demo.jpg

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

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

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

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Class yii\helpers\BaseFileHelper
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档