📜  php 获取文件夹中的文件 - PHP (1)

📅  最后修改于: 2023-12-03 14:45:26.117000             🧑  作者: Mango

PHP 获取文件夹中的文件

在 PHP 开发中,经常需要获取一个文件夹中的所有文件,本文将介绍几种方法来实现这个功能。

使用 scandir()

scandir() 函数可以返回指定文件夹中的文件和目录,并将它们以数组的形式返回。这个方法很简单,代码片段如下:

$dir = './path/to/directory';

if (is_dir($dir)) {
    $files = scandir($dir);

    foreach ($files as $file) {
        echo $file . '<br>';
    }
}

上述代码中,我们首先判断文件夹是否存在,如果是则调用 scandir() 函数获取文件和目录。最后使用 foreach 循环遍历输出每一个文件和目录。

使用 glob()

glob() 函数支持正则表达式,可以帮助我们筛选出特定的文件。例如,下面的代码可以获取某个文件夹下所有的 .txt 文件:

$dir = './path/to/directory';
$files = glob($dir . '/*.txt');

foreach ($files as $file) {
    echo $file . '<br>';
}
使用 DirectoryIterator

DirectoryIterator 对象可以迭代地遍历一个文件夹中的所有文件和目录,代码片段如下:

$dir = './path/to/directory';

$iterator = new DirectoryIterator($dir);

foreach ($iterator as $fileinfo) {
    if ($fileinfo->isFile()) {
        echo $fileinfo->getFilename() . '<br>';
    }
}

上述代码中,我们首先创建一个 DirectoryIterator 对象,然后使用 foreach 循环来迭代每一个文件或者目录。在循环中,我们判断当前是否为文件,如果是则输出文件名。

总结

以上三种方法均能够帮助我们获取一个文件夹中的所有文件。其中,scandir()glob() 函数比较简单,但是功能比较单一。而 DirectoryIterator 对象则可以更灵活地遍历一个文件夹中的所有文件和目录,但是代码稍微复杂一些。我们可以根据实际需求来选择使用哪种方法。