Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在php中列出所有文件夹及其文件_Php_File_Sorting_Directory_Scandir - Fatal编程技术网

如何在php中列出所有文件夹及其文件

如何在php中列出所有文件夹及其文件,php,file,sorting,directory,scandir,Php,File,Sorting,Directory,Scandir,我有一个文件夹,其中包含目录。一些目录包含文件,另一些包含另一个目录及其文件。我想要的是列出文件夹中的所有文件。假设我的文件夹是a,其中包含文件夹B和C。B包含一些mp3文件,在C中有另一个文件夹D,在D中有一些mp3文件文件。如何列出B和D中的所有mp3文件。请提供帮助。扫描目录时,您只需要mp3文件。尝试目录迭代器 function find_all_files($dir) { $root = scandir($dir); foreach($root as $value

我有一个文件夹,其中包含目录。一些目录包含文件,另一些包含另一个目录及其文件。我想要的是列出文件夹中的所有文件。假设我的文件夹是a,其中包含文件夹B和C。B包含一些mp3文件,在C中有另一个文件夹D,在D中有一些mp3文件文件。如何列出B和D中的所有mp3文件。请提供帮助。

扫描目录时,您只需要mp3文件。尝试目录迭代器

function find_all_files($dir) 
{ 
    $root = scandir($dir); 
    foreach($root as $value) 
    { 
        if($value === '.' || $value === '..') {continue;} 
        if(is_file("$dir/$value")) {$result[]="$dir/$value";continue;} 
        foreach(find_all_files("$dir/$value") as $value) 
        { 
            $result[]=$value; 
        } 
    } 
    return $result; 
} 
$scan_it = new RecursiveDirectoryIterator("/example_dir");

foreach(new RecursiveIteratorIterator($scan_it) as $file) {
  if (strtolower(substr($file, -4)) == ".mp3") {
    echo $file;
  }
}

希望能有帮助


你试过什么吗?从查找
glob()
recursivedirectoryinterator
开始,您应该包括代码源的链接:Nope。我很久以前就在代码中使用了它。忘了我从哪里抄的。听起来不错。也检查链接。很高兴你检查了。终于得到了消息来源:)非常感谢。它工作得很好
 function Read_Dir($dir) {
        $dh = opendir($dir);
        $files = array();
        while (($file = readdir($dh)) !== false) {
            $flag = false;
            if ($file !== '.' && $file !== '..') {
                  // check here if file is a directory then use it recursively
                $files[] = trim($file);

            }
        }
        return $files;

    }