一尘不染

获取目录中的文件

php

如何使用PHP获取目录内的文件名?

我找不到使用Google的相关命令,所以希望这个问题能对那些类似的问题有所帮助。


阅读 189

收藏
2020-05-26

共1个答案

一尘不染

有很多方法。较旧的方法是scandir
DirectoryIterator可能是最好的方法。

还有readdir(与一起使用opendir)和glob

以下是一些有关如何使用每个示例打印当前目录中所有文件的示例:

DirectoryIterator 用法:(推荐)

foreach (new DirectoryIterator('.') as $file) {
    if($file->isDot()) continue;
    print $file->getFilename() . '<br>';
}

scandir 用法:

$files = scandir('.');
foreach($files as $file) {
    if($file == '.' || $file == '..') continue;
    print $file . '<br>';
}

opendirreaddir用法:

if ($handle = opendir('.')) {
    while (false !== ($file = readdir($handle))) {
        if($file == '.' || $file == '..') continue;
        print $file . '<br>';
    }
    closedir($handle);
}

glob 用法:

foreach (glob("*") as $file) {
    if($file == '.' || $file == '..') continue;
    print $file . '<br>';
}

如评论中所述,这glob是很好的,因为我在那里使用的星号实际上可以用于对文件进行匹配,因此glob('*.txt')可以获取文件夹中的所有文本文件,并glob('image_*')获取以image_开头的所有文件。

2020-05-26