从 php 中按特定扩展名过滤的 dir 中获取文件的最佳方法
2022-08-30 11:17:54
可能的重复:
PHP目录中
特定文件的列表使用php scandir($dir)并仅获取图像!
所以现在我有一个目录,我得到了一个文件列表
$dir_f = "whatever/random/";
$files = scandir($dir_f);
但是,这将检索目录中的每个文件。我如何以最有效的方式仅检索具有特定扩展名的文件,例如.ini。
可能的重复:
PHP目录中
特定文件的列表使用php scandir($dir)并仅获取图像!
所以现在我有一个目录,我得到了一个文件列表
$dir_f = "whatever/random/";
$files = scandir($dir_f);
但是,这将检索目录中的每个文件。我如何以最有效的方式仅检索具有特定扩展名的文件,例如.ini。
PHP有一个很棒的功能,可以帮助您仅捕获所需的文件。它被称为glob()
glob - 查找与模式匹配的路径名
返回包含匹配文件/目录的数组,如果没有匹配的文件,则返回空数组,如果错误时返回 FALSE。
下面是一个示例用法 -
$files = glob("/path/to/folder/*.txt");
这将使用与给定路径中的模式匹配的所有文件的列表填充变量。$files
*.txt
参考资料 -
如果要搜索多个扩展名,则 preg_grep()
是筛选的替代方法:
$files = preg_grep('~\.(jpeg|jpg|png)$~', scandir($dir_f));
虽然有类似的额外语法。如果您有其他条件,添加不区分大小写的标志,或者可以筛选组合列表,这通常是有意义的。glob
~i