2017-04-17 234 views
0

我想要獲取我的目錄中的文件列表&在PHP語言中的數組中的子目錄。

我有2個類型的代碼:

1 - 首先代碼:
該婁代碼列出所有文件在一個數組,但也有文件夾和子目錄數組:
列出目錄和子目錄中的MP3文件在PHP中

$files = dir_scan('pathAddress'); 
function dir_scan($folder) { 
$files = glob($folder); 
foreach ($files as $f) { 
    if (is_dir($f)) { 
     $files = array_merge($files, dir_scan($f .'/*')); // scan subfolder 
    } 
} 
return $files; 
} 
echo "<pre>"; 
print_r($files); 
echo "</pre>"; 

結果頂部代碼:Click For View Image

2-二碼:
此Bellow代碼列出所有的MP3文件,但在字符串不是陣列! &我無法將其轉換爲數組。

$scan_it = new RecursiveDirectoryIterator("pathAddress"); 
foreach(new RecursiveIteratorIterator($scan_it) as $file) { 
if (strtolower(substr($file, -4)) == ".mp3") { 
echo "<pre>"; 
echo($file); 
echo "</pre>"; 
} 
} 

結果頂部代碼:Click For View Image

最後,我想MP3文件的陣列中的所有目錄指定位置&子目錄。

感謝您的幫助

回答

1

此代碼可以幫助你,它會檢查所有文件夾和回報,將獲得的文件名..

<?php 

function listFolderFiles($dir) 
{  
    $file_names = array(); 
    foreach (new DirectoryIterator($dir) as $fileInfo) { 
     if (!$fileInfo->isDot()) { 



      if ($fileInfo->isDir()) { 


       // checking directory empty or not, if not then append list  
       $isDirEmpty = !(new \FilesystemIterator($fileInfo->getPathname()))->valid(); 

       if($isDirEmpty != 1) 
       { 

        $file_names[] = listFolderFiles($fileInfo->getPathname()); 
       } 



      } 
      else 
      { 
       $file_names[] = $fileInfo->getPathname() ; 
      } 
     } 
    } 


    // Splicing Array 
     for ($i=0; $i<count($file_names); $i++) { 

      if (is_array($file_names[$i])) { 
        array_splice($file_names, $i, 1, $file_names[$i]); 
      } 
     } 


    return $file_names; 
} 


$res = listFolderFiles('main_folder_name'); 
echo '<pre>'; 
print_r($res); 


?> 
+0

謝謝你的代碼工作@ –

相關問題