使用PHP从目录中随机生成多个文件

时间:2013-07-18 07:48:54

标签: php html5 image loading random-sample

我正在建立一个人们可以去上传图片,GIF和视频的网站。在主页上,我想从上传目录中随机列出文件。

<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。现在我没有任何文件存储在数据库中。

1 个答案:

答案 0 :(得分: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
}
?>