2015-10-05 81 views
0

我想自動化圖像庫,因爲我需要先掃描圖庫文件夾中的圖像。第二我需要分開數組中的文件夾。例如:PHP>掃描圖像的文件夾/子文件夾>爲每個文件夾生成數組

這是我到目前爲止的代碼:

$path = '/public_html/images/gallery/'; 

$directory = new RecursiveDirectoryIterator($path,RecursiveDirectoryIterator::SKIP_DOTS); 
$iterator = new RecursiveIteratorIterator($directory,RecursiveIteratorIterator::LEAVES_ONLY); 

$extensions = array("jpg", "jpeg"); 

foreach ($iterator as $fileinfo) { 
    if (in_array($fileinfo->getExtension(), $extensions)) { 
     $files[] = $fileinfo->getPathname(); 
    } 
} 
/** print_r ($files); */ 

echo '<ul>'; 
foreach($files as $p){ 

echo '<li>'.$p.'</li>'; 
} 
echo '</ul>'; 

該電源輸出從該文件夾與它的子文件夾我的所有圖像。我真的不知道的是如何從$ files數組中提取數據,爲每個文件夾提供x個子數組。例如:

$files = {folder1/1.jpg, folder1/2.jpg, folder1/3.jpg, folder2/1.jpg, folder2/2.jpg } 

下一個我想提取文件夾arrayx成爲:

$folder1 = {folder1/1.jpg, folder1/2.jpg, folder1/3.jpg} 
$folder2 = {folder2/1.jpg, folder2/2.jpg} 

從這個我可以處理它生成收藏條目。謝謝!

回答

0

你可以試着讓多維數組通過添加文件夾名作爲關鍵字:

foreach ($iterator as $fileinfo) { 
    if (in_array($fileinfo->getExtension(), $extensions)) { 
     $files[$fileinfo->getPath()][] = $fileinfo->getPathname(); 
    } 
} 

現在,你應該有自己的不同路徑上的不同陣列分裂的不同文件:

$files["path1"][0] = file1; 
$files["path1"][1] = file2; 
$files["path2"][0] = file1; 
$files["path2"][1] = file2; 
相關問題