Random PHP

robert1975
09 de Mayo del 2006
Hola a todos! Enhorabuena por el foro! Tengo un consulta que es muy simple (supongo) para los que dominais PHP, pero para mi es un poco complicado.

Tengo un archivo PHP que sirve para que mi página web cargue imagenes aleatoriamente y la verdad es que me funciona muy bien. El único inconveniente es que se repiten muchas y lo que me gustaría conseguir es que no se repitieran hasta que se hubieran mostrado todas las posibles. Os adjunto mi archivo PHP (lo bajé de no sé donde) para que me podáis ayudar y, mira, de paso a quién le interese, tenerlo... Muchas gracias!

// Make this the relative path to the images, like "../img" or "random/images/".
// If the images are in the same directory, leave it blank.
$folder = '';

// Space seperated list of extensions, you probably won't have to change this.
$exts = 'jpg jpeg png gif';

$files = array(); $i = -1; // Initialize some variables
if ('' == $folder) $folder = './';

$handle = opendir($folder);
$exts = explode(' ', $exts);
while (false !== ($file = readdir($handle))) {
foreach($exts as $ext) { // for each extension check the extension
if (preg_match('/.'.$ext.'$/i', $file, $test)) { // faster than ereg, case insensitive
$files[] = $file; // it's good
++$i;
}
}
}
closedir($handle); // We're not using it anymore
mt_srand((double)microtime()*1000000); // seed for PHP < 4.2
$rand = mt_rand(0, $i); // $i was incremented as we went along

header('Location: '.$folder.$files[$rand]); // Voila!
?>