在PHP中从目录中随机播放和显示图像

时间:2017-11-20 22:08:29

标签: php html

我试图从目录中获取上传的图片并随机播放他们的订单。我能够很容易地获取图像并按顺序显示它们,但似乎无法让它们洗牌!

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

<div id="images">
        <?php
            $print_r($images);
            $shuffleimages = shuffle($images);
            foreach($shuffleimages as $shuffleimage) {
                echo '<img src="'.$shuffleimage.'" />';
            }
        ?>
</div>

当我打印$images时,我得到:

Array (

[0] => uploads/image1.jpg

[1] => uploads/image2.jpg

[2] => uploads/image3.jpg

[3] => uploads/image4.jpg

[4] => uploads/image5.jpg

)

我不知道它是否与glob函数有关或者我是如何更普遍地检索图像的?我已经查看了其他关于SO的问题,但似乎无法看到我做的不同/错误!

2 个答案:

答案 0 :(得分:4)

你向前迈出了一步......没有必要重新分配$images ...你的$shuffleimages只会返回truefalse <的布尔值/ p>

    <?php
        shuffle($images); // $images will be shuffled.
        foreach($images as $shuffleimage) {
            echo '<img src="'.$shuffleimage.'" />';
        }
    ?>

答案 1 :(得分:0)

您也可以使用sacndir并使用sorting_order参数对文件进行排序。