Mostrar una imagen aleatoria

Beware: This post was published 7 years ago and its content may be outdated.
Una imagen y un enlace aleatorio

Una imagen y un enlace aleatorio

El año pasado expliqué como mostrar una par de imágenes al azar mediante PHP. Hoy explicaré como mostrar un enlace aleatorio con una imagen aleatoria mediante un array y PHP.

La matriz tendrá un índice numérico que contendrá una nueva matriz, esta vez con dos índices: URL e IMG_URL, que indicarán la URL del enlace y la URL de la imagen, respectivamente. Mediante la función rand obtendremos un número aleatorio entre el primer índice de la matriz (0) y el último (determinado por el puntero de la matriz). Después moveremos el puntero interno de la matriz al último elemento y a continuación crearemos una nueva variable que almacene la matriz que contiene el índice N (donde N es el número aleatorio obtenido previamente) de la primera matriz.

El código de la matriz de mi ejemplo será el siguiente (que debe colocarse el principio del archivo, así se puede mostrar la imagen en cualquier otro lugar del archivo):

<?php
// Primer elemento de la matriz
$array[] = array(
'URL' => 'http://sumolari.com',
'IMG_URL' => 'http://sumolari.com/demos/imagen-aleatoria/img/sumolari.png'
);
// Segundo elemento de la matriz
$array[] = array(
'URL' => 'http://sumolari.com/mostrar-una-imagen-aleatoria/',
'IMG_URL' => 'http://sumolari.com/demos/imagen-aleatoria/img/tutorial.png'
);
// Tercer elemento de la matriz
$array[] = array(
'URL' => 'http://google.com',
'IMG_URL' => 'http://sumolari.com/demos/imagen-aleatoria/img/google.png'
);
// Movemos el puntero al último element
end($array);
// Calculamos el último índice
$last_key = key($array);
// Calculamos un número al azar entre 0 y el último índice
$key = rand(0, $last_key);
// Almacenamos los datos de la imagen que vamos a mostrar
$item = $array[$key];
?>

Y a continuación sólo tendremos que mostrar el enlace, usando un código como el siguiente:

<a href="<?php echo $item['URL']; ?>"><img src="<?php echo $item['IMG_URL']; ?>"  /></a>

La ventaja de este script comparado con el anterior es que en éste podemos mostrar un enlace y podemos definir la URL a la imagen, lo cual lo hace más flexible. Además podemos añadir tantas imágenes como queramos a la matriz sin preocuparnos por adaptar el script, ya que el último índice se calcula de forma dinámica.

Podéis ver un ejemplo del funcionamiento en esta página. Si tenéis cualquier duda con el tutorial, no dudéis en preguntarla en los comentarios.