2013-12-11 2 views
1

У меня есть папка и в ней есть каталоги. Некоторые из каталогов содержат файлы, а некоторые другие содержат другой каталог с его файлом. Что я хочу - это список всех файлов из папка. Предположим, что моя папка A и содержит папку B и CB содержит некоторые mp3-файлы, а в C есть еще одна папка D, а в D есть некоторые mp3-файлы. Как можно перечислить все mp3-файлы из B и D.Please Помогите.Как перечислить все папки и их файлы в php

+0

Пробовали ли вы что-нибудь? Начните с ['dir()'] (http://www.php.net/manual/en/function.dir.php) –

+0

lookup 'glob()' и 'RecursiveDirectoryIterator' – verbumSapienti

ответ

1
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; 
} 
+0

вы должны включить ссылку своего кода источник: http://ch2.php.net/scandir –

+0

Нет. Я использовал его в своем коде давно. Забыл, откуда я скопировал. –

+0

звук хорошо. проверьте ссылку. –

0

При сканировании каталога вам нужны только файлы mp3. попробуйте каталог итератор

$scan_it = new RecursiveDirectoryIterator("/example_dir"); 

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

How to exclude file types from Directory Iterator loop

-1
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; 

    } 

Надеется, что это помогает

Смежные вопросы