Hay varias formas de obtener una imagen aleatoria de una carpeta (o de un array) con PHP, en esta demo vamos a ver tres ejemplos:
rand
de PHP que nos devuelve un número aleatorio.// IMAGEN ALEATORIA CON PHP // pintamos la imagen con html y el nombre de la imagen con php <img src="https://josetxu.com/demos/img/<?php echo rand(1, 5); ?>.jpg" alt="imagen aleatoria" />
array
en PHP.rand
para obtener un indice aleatorio del array.<?php // FONDO ALEATORIO - creamos un array con las imagenes $img[1]='https://josetxu.com/demos/img/bg_colores.jpg'; $img[2]='https://josetxu.com/demos/img/bg_cuadrados.jpg'; $img[3]='https://josetxu.com/demos/img/bg_circulos.jpg'; $img[4]='https://josetxu.com/demos/img/bg_curvas.jpg'; $img[5]='https://josetxu.com/demos/img/bg_circuitos.jpg'; $i=rand(1,5);// almacenamos un número aleatorio entre 1 y 5 ?> <div style="background: url(<? echo $img[$i];/*remplazamos la url*/?>) no-repeat scroll center center transparent; min-height:240px; float:left; width:100%;" alt="imagen aleatoria"/></div>
array_rand
que selecciona una entrada específica del array que contiene las imágenes.<?php /* IMAGEN ALEATORIA CON PHP */ // extensiones de archivo $extensiones = array('jpg','jpeg','gif','png','bmp'); // carpeta de imagenes $carpeta = "/demos/img/"; // ruta del directorio $ruta = $_SERVER['DOCUMENT_ROOT'].$carpeta; // url del directorio $url = 'https://'.$_SERVER["SERVER_NAME"].$carpeta; // array de imagenes $imagenes = array(); // abrimos el directorio y mostramos las imagenes if ($handle = opendir($ruta)) { while (false !== ($file = readdir($handle))) { if ($file != "." && $file != "..") { // obtenemos la extension del archivo $ext = strtolower(substr(strrchr($file, "."), 1)); // almacenamos en el array if(in_array($ext, $extensiones)){ $imagenes[] = $url.$file; } } } closedir($handle); } // creamos un índice aleatorio $rand_key = array_rand($imagenes, 1); // almacenamos la url en la variable $src $src = $imagenes[$rand_key]; ?> // pintamos la imagen en html con la variable $src <img src="<?php echo $src; ?>" alt="imagen aleatoria" /> /* FIN IMAGEN ALEATORIA CON PHP */
Para probar estas demos en tu ordenador necesitas acceso a un servidor con php instalado .