注意
Yii 提供许多类来简化常见编码,如对字条串或数组的操作, HTML 代码生成,等等。这些助手类被编写在命名空间 yiihelpers
下,并且 全是静态类 (就是说它们只包含静态属性和静态方法,而且不能实例化)。
可以通过调用其中一个静态方法来使用助手类,如下:
use yiihelpersFileHelper;
$files = FileHelper::findFiles('uploads',['only'=>['*.jpg']]);
类说明
Class yiihelpersBaseFileHelper
继承 | yiihelpersBaseFileHelper |
---|---|
子类 | yiihelpersFileHelper |
可用版本自 | 2.0 |
源码 | yii2/BaseFileHelper.php at api · yiichina/yii2 · GitHub |
BaseFileHelper 为 yiihelpersFileHelper 提供了具体的实现方法。
不要使用 BaseFileHelper 类。使用 yiihelpersFileHelper 类来代替。
findFiles() 公共 静态 方法
返回在指定目录和子目录下找到的文件
public static array findFiles($dir, $options = [])
官方参数说明请查看 返回在指定目录和子目录下找到的文件。
测试例子1(返回所有文件)
代码语言:javascript复制$files = FileHelper::findFiles('uploads');
结果
代码语言:javascript复制array(2) {
[0]=>
string(22) "uploadsfilesdemo.txt"
[1]=>
string(23) "uploadsimagesdemo.jpg"
}
当我们只传递第一个参数(路径)的情况下,会发现返回的是整个目录下的所有文件。
测试例子2(搜索指定后缀文件)
代码语言:javascript复制$files = FileHelper::findFiles('uploads',['only'=>['*.jpg']])
结果
代码语言:javascript复制array(1) {
[0]=>
string(23) "uploadsimagesdemo.jpg"
}
当我们想要查找 uploads 目录下所有以 .jpg 结尾的文件时,第二个参数传递 ['only'=>['*.jpg']]即可返回想要的结果。
测试例子3(排除指定后缀文件)
代码语言:javascript复制$files = FileHelper::findFiles('uploads',['except'=>['*.jpg']]);
结果
代码语言:javascript复制array(1) {
[0]=>
string(22) "uploadsfilesdemo.txt"
}
当我们想要排除 uploads 目录下所有以 .jpg 结尾的文件时,第二个参数传递 ['except'=>['*.jpg']]即可返回想要的结果。
测试例子4(回调函数)
代码语言:javascript复制$files = FileHelper::findFiles(
'uploads',
// $path 指的是要过滤的完整路径。
['filter' => function($path){
echo $path;
}]
);
结果
代码语言:javascript复制uploadsfiles
uploadsfilesdemo.txt
uploadsimages
uploadsimagesdemo.jpg
如果不符合项目需求的情况下可以使用回调函数自行处理。
注:uploads目录在web目录下,和index.php入口文件同级。