Demos

demo Imagen aleatoria con PHP

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:

  • Número aleatorio
  • Recorrer un array
  • Buscar en carpeta

Número aleatorio

Características

  • Selecciona una imagen de una carpeta utilizando un número elegido al azar.
  • Usamos la función rand de PHP que nos devuelve un número aleatorio.
numero-aleatorio.php
// IMAGEN ALEATORIA CON PHP 
// pintamos la imagen con html y el nombre de la imagen con php
<img src="http://josetxu.com/demos/img/<?php echo rand(1, 5); ?>.jpg" alt="imagen aleatoria" />

com · edit · js · jq · php · css · html

Recorrer un array

Características

  • Selecciona una imagen de un array en PHP.
  • Usamos rand para obtener un indice aleatorio del array.
  • En esta ocasión usamos la imagen como fondo de un elemento.
recorrer-array.php
<?php // FONDO ALEATORIO - creamos un array con las imagenes 
$img[1]='http://josetxu.com/demos/img/bg_colores.jpg';
$img[2]='http://josetxu.com/demos/img/bg_cuadrados.jpg';
$img[3]='http://josetxu.com/demos/img/bg_circulos.jpg';
$img[4]='http://josetxu.com/demos/img/bg_curvas.jpg';
$img[5]='http://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>

com · edit · js · jq · php · css · html

Buscar en carpeta

Características

  • Selecciona cualquier imagen de una carpeta específica.
  • Acepta cualquier extension de archivo que queramos incluir.
  • Esta vez usamos la función array_rand que selecciona una entrada específica del array que contiene las imágenes.
  • No hay que controlar el número de imágenes, es automaticamente infinito... mientras existan imágenes en la carpeta elegida.
buscar-en-carpeta.php
<?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 = 'http://'.$_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 */

com · edit · js · jq · php · css · html
aviso

Atención

Para probar estas demos en tu ordenador necesitas acceso a un servidor con php instalado .