注意
Yii 提供许多类来简化常见编码,如对字条串或数组的操作, HTML 代码生成,等等。这些助手类被编写在命名空间 yii\helpers
下,并且 全是静态类 (就是说它们只包含静态属性和静态方法,而且不能实例化)。
可以通过调用其中一个静态方法来使用助手类,如下:
use yii\helpers\FileHelper;
$files = FileHelper::findFiles('uploads',['only'=>['*.jpg']]);
类说明
继承 | 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(返回所有文件)
$files = FileHelper::findFiles('uploads');
结果
array(2) {
[0]=>
string(22) "uploads\files\demo.txt"
[1]=>
string(23) "uploads\images\demo.jpg"
}
当我们只传递第一个参数(路径)的情况下,会发现返回的是整个目录下的所有文件。
测试例子2(搜索指定后缀文件)
$files = FileHelper::findFiles('uploads',['only'=>['*.jpg']])
结果
array(1) {
[0]=>
string(23) "uploads\images\demo.jpg"
}
当我们想要查找 uploads 目录下所有以 .jpg 结尾的文件时,第二个参数传递 ['only'=>['*.jpg']]即可返回想要的结果。
测试例子3(排除指定后缀文件)
$files = FileHelper::findFiles('uploads',['except'=>['*.jpg']]);
结果
array(1) {
[0]=>
string(22) "uploads\files\demo.txt"
}
当我们想要排除 uploads 目录下所有以 .jpg 结尾的文件时,第二个参数传递 ['except'=>['*.jpg']]即可返回想要的结果。
测试例子4(回调函数)
$files = FileHelper::findFiles(
'uploads',
// $path 指的是要过滤的完整路径。
['filter' => function($path){
echo $path;
}]
);
结果
uploads\files
uploads\files\demo.txt
uploads\images
uploads\images\demo.jpg
如果不符合项目需求的情况下可以使用回调函数自行处理。
注:uploads目录在web目录下,和index.php入口文件同级。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有