PHP - 从多个文件夹中获取随机图像

时间:2012-02-27 17:28:25

标签: php

我试图找出使用PHP从我网站上的多个子文件夹中提取随机图像的最佳方法。我会使用RecursiveDirectoryIterator迭代子文件夹并提取图像,但我想知道如何处理随机化以及如何有效地完成它。关于如何解决这个问题的任何建议?

3 个答案:

答案 0 :(得分:3)

为迭代端点创建一个随机数(同时$ i <10)。在此之前,您可以创建另一个随机会话来选择目录。


将所有图像读入数组,然后选择随机索引。

答案 1 :(得分:3)

function get_images($root) {

    $r = array();
    foreach(glob("$root/*") as $n) {
        if (is_dir($n)) {
            $r = array_merge($r, get_images($n));
        } else {
           $r[] = $n;
        }
    }

    return $r;
}

$files = get_images('foo');
shuffle($files);
echo $files[0];

答案 2 :(得分:0)

将所有完整$path加载到$array并选择mt_rand(0, count($array)-1)

您可能希望缓存列表,只要它不会更改,以避免重新遍历您的目录。