2013-12-14 115 views
1

我有一個PHP腳本,用於抓取某個目錄中的所有圖像並顯示它們,儘管我希望能夠在我指定的目錄的子目錄中顯示圖像。在Glob中獲取目錄和子目錄中的圖像

因此,例如,現在我的腳本只得到以下圖片

上傳/ prevImgs/145323.png

上傳/ prevImgs/276531.png

其中ID要它得到以下內容

uploads/prevImgs/145323.png

上傳/ prevImgs/276531.png

上傳/ prevImgs/DIR1/12323.png

上傳/ prevImgs/DIR2/212331.png

我當前的腳本是以下

<?php 
    // Directory Path Of Library Preview Images // 
    $dirname = "uploads/prevImgs/"; 
    $images = glob("{$dirname}*.*"); 
    foreach($images as $image) { 
    echo '<img src="'.$image.'" /><br />'; 
    } 
?> 

巨大的感謝提前!

回答

2

可以疊加一個RecursiveDirectoryIterator和RecursiveIteratorIterator讓你要找的效果:

$rdi = new RecursiveDirectoryIterator("uploads/prevImgs/"); 
$it = new RecursiveIteratorIterator($rdi); 
foreach($it as $oneThing) 
    if (is_file($oneThing)) 
     echo '<img src="'.$oneThing.'" /><br />'; 

我知道,這似乎是違反直覺的,你必須採取RecursiveDirectoryIterator和堆棧另一迭代器上它的頂部,使其工作。這方面的文件可能會更好。

1

我可以建議使用RecursiveDirectoryIterator創建一個類來遍歷(子)目錄及其文件的文件。與遞歸過濾器迭代器PHP提供的其中一個一起,您只能返回圖像文件。

還有一個GlobIterator,但我不確定它是否也執行遞歸迭代。