2014-03-05 31 views
0

我有這個簡單的腳本來顯示文件夾中的所有圖像。使用PHP顯示文件夾中的文件數

<?php 

foreach(glob("".$filePath."/*.{jpg,JPG,jpeg,JPEG,gif,GIF,png,PNG}",GLOB_BRACE) as $images) 
{ 
$filecount = count(glob("".$filePath."/*.{jpg,JPG,jpeg,JPEG,gif,GIF,png,PNG}",GLOB_BRACE)); 
if ($filecount >1) 
    { 
echo "<img width='75' height='auto' style='margin-right: 3px; border:1px solid #dddddd' alt='".$row["caption"] ."' src=\"".$images."\">"; 
    } 
else 
    { 
echo "<img width='200' height='auto' style='margin-right: 3px; border:1px solid #dddddd' alt='".$row["caption"] ."' src=\"".$images."\">"; 
    } 

} 

?> 

我想在folder.Giving顯示下面是我的文件數tried..My問題是,這說明文件中的每個圖像之前的數量。

if ($filecount >1) 
{ 
echo '' . $user . ' ' .'added ' . ' ' . $filecount . ' ' . 'new photos'; 
echo "<img width='75' height='auto' style='margin-right: 3px; alt='".$row["caption"] ."' src=\"".$images."\">"; 
} 

如何在顯示圖像組之前顯示文件數量?

+1

這是什麼語言,你應該添加一個標籤 – BenVlodgi

+1

對不起。這是php.I已添加標籤。 – user3370495

+0

也許做一個foreach循環來獲取文件的計數,然後在你的主foreach循環之前打印它 – BenVlodgi

回答

0

只有在收集文件後,才需要顯示文件數量。
您可以通過在循環前聲明filecount變量來完成此操作,那麼每次循環轉到下一個結果時都需要對值進行計數和求和,並最終顯示文件總數。
下面是代碼應如何寫:

<?php 
$filecount = 0; 

foreach(glob("".$filePath."/*.{jpg,JPG,jpeg,JPEG,gif,GIF,png,PNG}",GLOB_BRACE) as $images) 
{ 
    $tempFileCount = count(glob("".$filePath."/*.{jpg,JPG,jpeg,JPEG,gif,GIF,png,PNG}",GLOB_BRACE)) 
    $filecount += $tempFileCount; 
    if ($tempFileCount > 1) 
    { 
     echo "<img width='75' height='auto' style='margin-right: 3px; border:1px solid #dddddd' alt='".$row["caption"] ."' src=\"".$images."\">"; 
    } 
    else 
    { 
     echo "<img width='200' height='auto' style='margin-right: 3px; border:1px solid #dddddd' alt='".$row["caption"] ."' src=\"".$images."\">"; 
    } 
} 

if($filecount > 1) 
{ 
    echo '' . $user . ' ' .'added ' . ' ' . $filecount . ' ' . 'new photos'; 
} 

?> 
+0

非常歡迎:-) – MrByte

+0

我在這一行發現一個錯誤,並糾正它。 $ filecount + = $ tempFileCount;我將此行更改爲$ filecount = $ tempFileCount;它運行良好。 – user3370495

+0

感謝您的反饋和抱歉,我沒有機會測試此代碼。 – MrByte

0

首先創建一個返回所有圖像作爲陣列的功能。如果php函數出現錯誤(這種情況大多數情況下不會發生,但值得知道它發生的時間),這將引發異常。該函數將給出代碼更清潔一點的感覺。

<?php 
function getAllImagesOnDirectory($directory) { 
    $imagesArray = glob("".$filePath."/*.{jpg,JPG,jpeg,JPEG,gif,GIF,png,PNG}",GLOB_BRACE); 
    if(!is_array($imagesArray)) { 
     throw new RuntimeException("There is a problem getting images on directory " . $directory); 
    } 

    return $imagesArray; 
} 


//Then we call this function to get all the images. 
$allImagesOnFilePath = getAllImagesOnDirectory($filePath); 
$numberOfImages = count($allImagesOnFilePath); 


if($numberOfImages > 0) { 
    echo '<p>' . $user . ' added ' . $numberOfImages . ' new photos</p>'; 
    //If the number of images is more than 0 then traverse all the images and echo them 
    foreach($allImagesOnFilePath as $oneImage) { 
     echo "<img style='max-width:100%;height:auto;margin-right: 3px; border:1px solid #dddddd' alt='".$row["caption"] ."' src=\"".$oneImage."\">"; 
    } 
} 
else { 
    //The user has no uploaded images 
    echo '<p>' . $user . ' has not added new photos yet :(</p>'; 
} 

這樣我們就可以使用foreach,從而做你要求什麼之前使用$numberOfImages
我們在這裏也使用樣式屬性將寬度和高度應用於圖像。看到這篇文章,看看如何做出autoresizable圖像:http://unstoppablerobotninja.com/entry/fluid-images

相關問題