2013-07-18 57 views
0

我正在構建一個網站,人們可以上傳圖片,gif和視頻。在主頁上,我想從上傳目錄隨機列出文件。隨機從PHP目錄生成多個文件

<article class="item thumb" data-width="384"> 
    <h2><?php echo $file_title;?></h2> 
    <a href="<?php echo $randomImage ?>"><img src="<?php echo $randomImage ?>" alt=""></a> 
</article> 

<article class="item thumb" data-width="274"> 
    <h2><?php echo $file_title;?></h2> 
    <a href="<?php echo $randomImage ?>"><img src="<?php echo $randomImage ?>" alt=""></a> 
</article> 

這樣做總共五次。 $ randomImage從代碼生成:

<?php 
    $imagesDir = 'uploads/'; 
    $images = glob($imagesDir . '*.{jpg,jpeg,png,gif}', GLOB_BRACE); 
    $randomImage = $images[array_rand($images)]; 
    $file_title = $randomImage; 
?> 

我希望能夠增加一個功能,爲用戶向下滾動,越來越多的包含圖像,這些文章的出現,每個都包含一個隨機的,但以前沒有在那裏顯示的文件。如何隨機顯示文件而無需手動輸入唯一變量?

P.S.現在我沒有任何文件存儲在數據庫中。

回答

0

從另一個選項中刪除從$images中隨機選擇的圖像。

環5倍的圖像

<?php 
// get all files 

$imagesDir = 'uploads/'; 
$images = glob($imagesDir . '*.{jpg,jpeg,png,gif}', GLOB_BRACE); 
$imagesCount = count($images); 

for($i = 0 ; $i < $imagesCount ; $i++) { 

    // select image 

    $randomIndex = array_rand($images); // select image index 

    $file_title = $randomImage = $images[$randomIndex]; // use selected image 

    unset($images[$randomIndex]); // remove selected image 
    // print_r($images); // you can see what left in $images 

    // show image 

    ?> 
    <article class="item thumb"> 
     <h2><?php echo $file_title;?></h2> 
     <a href="<?php echo $randomImage ?>"><img src="<?php echo $randomImage ?>" alt=""></a> 
    </article> 
    <?php 
} 
?> 
+0

我用這個代碼,它在每個塊加載相同的圖像。我打電話時應該使用什麼變量:

+0

您必須在每個塊之前獲得新的'$ randomImage'。請參閱我的答案中的新代碼。 – furas

+0

完美! 5個圖像,我需要它繼續加載圖像越來越多的塊加載。將有一個功能,當用戶滾動,更多的內容框將出現。我怎樣才能設置此代碼循環永遠,並繼續確保相同的圖像不會被加載兩次? –