2012-03-09 40 views
1

我的服務器上有一個名爲'images'的文件夾,並且在該文件夾中,我可以將一個文件夾放到多達10個包含圖像的文件夾中。從多個目錄中提取所有圖像並用PHP顯示它們

而不是寫一個標籤爲每個圖像

<img src="images/people/001.jpg"> 
<img src="images/landscape/001.jpg"> 

等等等等

我可以用PHP來獲得所有文件夾的所有圖像在主目錄「圖像」的?

我對PHP有很少的經驗,所以這是我一直在努力的。

我需要的PHP返回的「<div class="box"><img src="images/FOLDER/IMAGENAME.jpg"></div>

陣列也許有人可以提供幫助。

回答

3
function ListFiles($dir) { 
    if($dh = opendir($dir)) { 
     $files = Array(); 
     $inner_files = Array(); 
     while($file = readdir($dh)) { 
      if($file != "." && $file != ".." && $file[0] != '.') { 
       if(is_dir($dir . "/" . $file)) { 
        $inner_files = ListFiles($dir . "/" . $file); 
        if(is_array($inner_files)) $files = array_merge($files, $inner_files); 
       } else { 
        array_push($files, $dir . "/" . $file); 
       } 
      } 
     } 
     closedir($dh); 
     return $files; 
    } 
} 
foreach (ListFiles('/path/to/images') as $key=>$file){ 
    echo "<div class=\"box\"><img src=\"$file\"/></div>"; 
} 

是這樣的嗎?

3

更簡單的解決方案。您可以使用內置glob函數。假設你所有的圖片都.jpg:你想

$result = array(); 
$dir = 'images/'; 

foreach(glob($dir.'*.jpg') as $filename) { 
    $result[] = "<div class=\"box\"><img src=\"$filename\"></div>"; 
} 

然後你就可以呼應$result每個元素或什麼的。

+0

這非常簡單,但由於我無法控制進入網站的圖像文件,因此最好能夠接受所有圖像類型。它將進入一個網頁模板。 – Ryan 2012-03-09 05:09:10

+0

@Ryan然後改變'glob()'參數來接受全部使用'*。*'而不是'* .jpg'。 – Jared 2013-05-24 05:20:49

相關問題