Tema: FAQ's de PHP
Ver Mensaje Individual
  #89 (permalink)  
Antiguo 04/11/2003, 02:04
Avatar de jpinedo
jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 21 años, 1 mes
Puntos: 41
Tema: Imágenes, Banners, Números aleatorios.
Pregunta: ¿Cómo mostrar un banner o imagen cualquiera (con su link y "alt") tomado de una lista aleatoriamente?
Respuesta: De una interesante dicusión en este post , surgió el script que coloco a continuación. Gracias a Cluster, a josemi y a todos los que participamos.
**************************************
Código PHP:
  //Primero, guardamos en un array bidimensional el nombre de archivo de la imagen y el link hacia donde debe enviarnos al hacerle click.
$banners[0]['imagen']="imagen0.gif";
$banners[0]['url']="www.nosenada.tal";
$banners[0]['alt']="página de nosenada";

$banners[1]['imagen']="imagen1.gif";
$banners[1]['url']="http://www.nose.tal";
$banners[1]['alt']="Entra y diviértete";

$banners[2]['imagen']="imagen2.gif";
$banners[2]['url']="pagina.html";
$banners[2]['alt']="mi página personal";

$banners[3]['imagen']="imagen3.jpg";
$banners[3]['url']="../pagina.php";
$banners[3]['alt']="visítanos y colabora";

//Si tenemos una versión de PHP menor a la 4.2.0, tenemos que inicializar el generador de números aleatorios.
srand((float) microtime() * 10000000);//si es 4.2.0 o mayor, no hace falta esta lína.

//Utilizamos la función array_rand() para elegir un índice aleatorio
$id_banner array_rand($banners);

$banner_imagen=$banners[$id_banner]['imagen'];
$banner_url=$banners[$id_banner]['url'];
$banner_alt=$banners[$id_banner]['alt']; 
Así utilizamos una etiquta algo así:
Código PHP:
echo "<a href=\"$banner_url\"><img src=\"$banner_imagen\" alt=\"$banner_alt\"></a>"
Sobre el uso de array_rand() dejo este link al manual:(en español)
http://www.php.net/manual/es/function.array-rand.php

Y este otro al post donde se dicutió algo al respecto.
http://www.forosdelweb.com/s/msg136573.html

Saludos

"Alt" agregado por sugerencia de elanime.

Última edición por jpinedo; 06/11/2003 a las 03:34