2013-10-27 91 views
0

我對php很新,我想遍歷根文件夾中的圖像目錄,並將這些圖像發佈到網頁上。我使用下面的代碼可以這樣做:從目錄中發佈圖像php

<?php 
$dir = "images/*.jpg"; 
$images = glob($dir); 
foreach($images as $image): 
    echo "<img src='" . $image . "' />"; 
endforeach; 
?>   

我的問題是我怎麼能修改此代碼後比.jpg圖像,如.gif和與JPEG格式擴展名JPG更無需創建多個目錄變量?

此外,是否有更有效的方式發佈這些圖像?

非常感謝!

回答

0

非巧妙的蠻力的方式來做到這一點將只是爲所有不同的圖像類型運行循環。

$dir = "images/*.jpg"; 
$images = glob($dir); 
foreach($images as $image): 
    echo "<img src='" . $image . "' />"; 
endforeach; 
$dir = "images/*.png"; 
$images = glob($dir); 
foreach($images as $image): 
    echo "<img src='" . $image . "' />"; 
endforeach; 
$dir = "images/*.gif"; 
$images = glob($dir); 
foreach($images as $image): 
    echo "<img src='" . $image . "' />"; 
endforeach; 

etc... 
0

一個優雅的方法是創建一個數組,然後迭代它。

<?php 
$imgs = array("images/*.jpg","images/*.gif","images/*.pnj"); 
foreach($imgs as $type){ 
    $images = glob($type); 
    foreach($images as $image): 
     echo "<img src='" . $image . "' />"; 
    endforeach; 
endforeach; 
?> 
+0

$ files = glob(「*。{jpg,png,gif}」,GLOB_BRACE); – tcardoso

0

當您構建數組($ images是一個數組)時,您可以將新文件推送到該數組。

$file_extensions = ['jpg', 'png']; 

$images_total = []; 
foreach ($file_extensions as $extension) { 
    $dir = "images/*." . $extension; 
    $images = glob($dir); 
    foreach $images as $image { 
     $images_total[] = $image; 
    } 
} 

現在用你的最終代碼:

<?php 
foreach($images_total as $image): 
    echo "<img src='" . $image . "' />"; 
endforeach; 
?> 

我沒有測試它,但是這是一個想法:)

我,而我打字答覆出現了:作爲一個差異,我方法,您可以在開始打印HTML之前構建包含文件夾中每個文件的數組。這可能會允許你在輸出給用戶之前洗牌或者操作數組:)