2012-02-27 67 views
1

我想弄清楚最好的方式,使用PHP,从我的网站上的多个子文件夹拉一个随机图像。我将使用RecursiveDirectoryIterator来遍历子文件夹并提取图像,但我想知道如何处理随机化以及如何有效地执行它。有关如何解决此问题的任何建议?PHP - 从多个文件夹中获取随机图像

+0

我相信你可以读取文件名和目录名,将它填充到数组中然后使用array_rand函数http://php.net/manual/en/function.array-rand.php – 2012-02-27 17:31:25

回答

2
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]; 
3

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


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

0

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

只要不更改,您可能想要缓存列表,以避免重新遍历目录。

相关问题