PHP 列出目录中的所有文件

2022-08-30 11:16:09

可能的重复:
使用 PHP 获取目录的层次结构 使用 PHP
获取目录中所有文件的名称

我已经看到了列出目录中所有文件的函数,但是我如何列出子目录中的所有文件,因此它返回一个数组

$files = files("foldername");

所以是类似于$files

array("file.jpg", "blah.word", "name.fileext")

答案 1
foreach (new RecursiveIteratorIterator(new RecursiveDirectoryIterator('.')) as $filename)
{
    // filter out "." and ".."
    if ($filename->isDir()) continue;

    echo "$filename\n";
}


PHP 文档:


答案 2

所以你正在寻找一个递归目录列表?

function directoryToArray($directory, $recursive) {
    $array_items = array();
    if ($handle = opendir($directory)) {
        while (false !== ($file = readdir($handle))) {
            if ($file != "." && $file != "..") {
                if (is_dir($directory. "/" . $file)) {
                    if($recursive) {
                        $array_items = array_merge($array_items, directoryToArray($directory. "/" . $file, $recursive));
                    }
                    $file = $directory . "/" . $file;
                    $array_items[] = preg_replace("/\/\//si", "/", $file);
                } else {
                    $file = $directory . "/" . $file;
                    $array_items[] = preg_replace("/\/\//si", "/", $file);
                }
            }
        }
        closedir($handle);
    }
    return $array_items;
}