Foros del Web » Programando para Internet » PHP »

Imagenes aleatorias

Estas en el tema de Imagenes aleatorias en el foro de PHP en Foros del Web. Hola buenas! Quiero crear una página web en php que cuando la ejecute en el navegador, salga una imagen aleatoria que tengo en una carpeta. ...
  #1 (permalink)  
Antiguo 22/06/2006, 04:23
Avatar de txusta77  
Fecha de Ingreso: junio-2006
Mensajes: 34
Antigüedad: 17 años, 10 meses
Puntos: 0
Imagenes aleatorias

Hola buenas!

Quiero crear una página web en php que cuando la ejecute en el navegador, salga una imagen aleatoria que tengo en una carpeta. Me han pasado un código y funciona perfectamente, pero lo estoy intentando hacer en php y un poco más sencillo. Este es mi codigo:

<?
$numero = rand(1,4);
$prueba=$numero."."."jpg";
echo $prueba";
?>
1.La variable $numero será un número del 1 al 4.
2.La variable $prueba será el número + .jpg. Ejemplo(1.jpg).
3.Para comprobar que sale aleatorio he hecho el echo y funciona correctamente.Cada vez que abro el navegador, me sale 1.jpg o 2.jpg o 3.jpg o 4.jpg.Hasta ahí todo correcto.Pero..como lo añado al <IMG SRC >?porque la variable $prueba no sirve para html...no?me da error.Como puedo hacer eso?

Saludos y gracias!
  #2 (permalink)  
Antiguo 22/06/2006, 04:50
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 2 meses
Puntos: 772
Hola txusta77

Creo que sería algo así:
Código PHP:
echo "<img src='".$prueba."' />"
Saludos,
  #3 (permalink)  
Antiguo 22/06/2006, 05:07
Avatar de txusta77  
Fecha de Ingreso: junio-2006
Mensajes: 34
Antigüedad: 17 años, 10 meses
Puntos: 0
Lo he probado y sigue igual. Es decir, me sale:
1.jpg o 2.jpg o 3.jpg o 4.jpg

Tengo una carpeta con el código php y en él se encuentran las cuatro imágenes cuyos nombre son 1,2,3 y 4 y son .JPEG.
  #4 (permalink)  
Antiguo 22/06/2006, 07:07
Avatar de emiliodeg  
Fecha de Ingreso: septiembre-2005
Ubicación: Córdoba
Mensajes: 1.830
Antigüedad: 18 años, 7 meses
Puntos: 55
y por menor no haces algo basandote mejor en lo q existe en la carpeta de las imagenes??? algo asi podria andar bien
Código PHP:
function es_imagen($img){
    
$extension explode(".",$img); 
    
$ext count($extension)-1
        if(
$extension[$ext] == "jpg" || $extension[$ext] == "jpeg" || $extension[$ext] == "gif" || $extension[$ext] == "png"
            return 
TRUE;
        else
            return 
FALSE;       
}
//funcion es_imagen para encontrar solo las imagenes
$gestor=opendir("imagenes/");
while(
$archivo=readdir($gestor)){
if(
es_imagen($archivo))
$imgsDisponibles[]=$archivo
}
echo 
"<img src=\"imagenes/".$imgsDisponibles[0,count($imgsDisponibles)]."\" />";//aqui imprimimos una imagen aleatoria de todas las q tenemos en el directorio 
saludos espero te sirva
  #5 (permalink)  
Antiguo 22/06/2006, 08:23
Avatar de the_scorpion  
Fecha de Ingreso: mayo-2006
Ubicación: Cuba
Mensajes: 696
Antigüedad: 17 años, 11 meses
Puntos: 3
Hola
Cita:
me sale 1.jpg o 2.jpg o 3.jpg o 4.jpg
$numero que puede ser el numero 1 o 2 o 3 o 4 . jpg

eso se debe a tu script que lo que hace es tomar el valor de $numero y agregarle .jpg
Código PHP:
$numero rand(1,4); 
$prueba=$numero."."."jpg";
echo 
$prueba"; 
ahora bien que le falta a tu script, pues nadita mas que un array para los nombres de las imagenes
Código PHP:
$img = array();
$img[1] = "1";
$img[2] = "2";
$img[3] = "3";
$img[4] = "4"
me tome hacerle algunas modificaciones y aqui te lo dejo
Código PHP:
$numimagen 4//numero de imagenes a rotar
$random rand(1,$numimagen);
$img = array();
$img[1] = "1.jpg";
$img[2] = "2.jpg";
$img[3] = "3.jpg";
$img[4] = "4.jpg";
echo 
"<img src='$img[$random]'></a>"
__________________
Que hablen mal de uno es espantoso. Pero hay algo peor: que no hablen.
Quien hace, puede equivocarse. Quien nada hace, ya está equivocado".
  #6 (permalink)  
Antiguo 23/06/2006, 06:01
Avatar de txusta77  
Fecha de Ingreso: junio-2006
Mensajes: 34
Antigüedad: 17 años, 10 meses
Puntos: 0
Perfecto!muchisimas gracias!funcione bien. Por cierto...hay una variable de entorno que es [HTTP_ACCEPT_LANGUAGE]. Hay otro que te indica cual es el idioma actual del navegador, no?cual es?no lo encuentro..
  #7 (permalink)  
Antiguo 23/06/2006, 07:03
Avatar de the_scorpion  
Fecha de Ingreso: mayo-2006
Ubicación: Cuba
Mensajes: 696
Antigüedad: 17 años, 11 meses
Puntos: 3
Hola

veamos esto
Código PHP:
<?
//Mensaje de Variable de los lenguajes
$espanol="Hola";
$ingles="Hello";
$frances="hola";
$chino="quien lo escribe"//jajajajaj una broma
$ruso="quien lo escribe";  //jajajajaj una broma


//Se lee en el navegador cuál es el lengua oficial
$idioma=substr($HTTP_ACCEPT_LANGUAGE,0,2); //agrega en dependecia cantidad de idiomas numero final

//Posibilidades de idiomas
if ($idioma == "es")
{echo 
"$espanol";}
elseif (
$idioma=="en")
{echo 
"$ingles";}
else (
$idioma=="fr")
/*{echo "$frances";}
else ($idioma=="zh")
{echo "$chino";}
else ($idioma=="ru")
{echo "$ruso";}
*/
?>
Ahora bien
con $idioma se define variable para leer el lenguaje del navegador

Ahora va lo tuyo
con la función substr, se toma las dos primeras letras del código correspondiente al idioma aceptado por el navegador ($HTTP_ACCEPT_LANGUAGE).
como as de saber eso se cambia en tu vavegador usando internet explorer (herramientas, opciones, idioma agregar idioma: el idioma predeterminado es aquel que este de primero)

Siguiendo con el script
luego el se engarca de ver en el navegador en que idioma esta (algunos omiti, solo estan trabajando 2)
(es) español
(en-us) ingles
(fr) frances
(zh) chino
(ru) ruso

y de hay imprime el mensaje que se encuentra arriba (hola, hello).

por ultimo
"==" para comparar variables
"=" para asignar o agregar valores a variables

Espero haber sido esclarecedor

Saludos
Bye
__________________
Que hablen mal de uno es espantoso. Pero hay algo peor: que no hablen.
Quien hace, puede equivocarse. Quien nada hace, ya está equivocado".
  #8 (permalink)  
Antiguo 23/06/2006, 07:56
Avatar de txusta77  
Fecha de Ingreso: junio-2006
Mensajes: 34
Antigüedad: 17 años, 10 meses
Puntos: 0
Siempre se agradece una ayuda así! Muy bien explicado!Me estoy iniciando en esto del php asique me vereis a menudo por aqui..jejeje.

Del chino y ruso ya me encargo yo!jajaja!

Gracias!
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:14.