Foros del Web » Programando para Internet » PHP »

Mostrar imagen aleatoria a partr de la lectura de un directorio

Estas en el tema de Mostrar imagen aleatoria a partr de la lectura de un directorio en el foro de PHP en Foros del Web. Hola a todos!!! Queria saber algo: tengo una carpeta en mi server llamada galerias dentro de esa carpeta, hay muchas otras carpetas las cuales cada ...
  #1 (permalink)  
Antiguo 20/05/2007, 20:04
Avatar de lrunge  
Fecha de Ingreso: agosto-2005
Ubicación: En algun lugar de Caracas
Mensajes: 165
Antigüedad: 18 años, 9 meses
Puntos: 4
Mostrar imagen aleatoria a partr de la lectura de un directorio

Hola a todos!!!
Queria saber algo:

tengo una carpeta en mi server llamada galerias dentro de esa carpeta, hay muchas otras carpetas las cuales cada una contienen imagenes.

Como puedo hacer para mostrar una sola imagen de manera aleatoria de alguna de esas carpetas que se encunetra dentro de la carpeta galerias

Supongamos que el usuario ingresa a mi pagina y yo le muestro una sola fotografia (la cual aparecio de manera aleatoria) pero la fotografia se encuentra en alguna de las 10 carpetas que se encuentra dentro de la carpeta galerias.

Espero me sepan entender, por cierto.. la idea no es utilizar mysql, que PHP lea el directorio galerias seleccione alguna de las carpetas, y seleccione alguna imagen dentro de esa carpeta.

Saludos y gracias
__________________
"La sencillez de una respuesta, sera inversamente proporcional a su explicacion" Luis Runge

Última edición por lrunge; 21/05/2007 a las 00:43
  #2 (permalink)  
Antiguo 20/05/2007, 20:20
Avatar de geq
geq
 
Fecha de Ingreso: agosto-2006
Ubicación: Rosario
Mensajes: 655
Antigüedad: 17 años, 8 meses
Puntos: 22
Re: Mostrar imagen aleatoria a partr de la lectura de un directorio

hola
podrias hacer qe tu script genere un arreglo con todos los nombres de los subdirectorios y qe luego elija uno de sus elementos al azar, entre a esa carpeta, lea su contenido, genere un nuevo arreglo con todos los nombres de los archivos, y elija un elemento de este nuevo arreglo. ahi tendras tu imagen al azar ^^

para leer el contenido de un directorio puedes usar:

Código PHP:
if($gd=opendir("./ruta/al/dir")) {
  while((
$archivo=readdir($gd))!==false) {
    echo 
"Nombre del archivo: $archivo\ttipo: ".filetype($dir.$archivo)."\n";
  }
  
closedir($gd);

y por las dudas, para seleccionar un elemento aleatorio de un arreglo $array puedes utilizar lo siguiente:
Código PHP:
$aleatorio=$array[rand(0,count($array))]; 

bueno espero qe te sirva ^^

exitos
  #3 (permalink)  
Antiguo 20/05/2007, 20:24
Avatar de oso96_2000  
Fecha de Ingreso: junio-2002
Ubicación: Distrito Federal
Mensajes: 558
Antigüedad: 21 años, 10 meses
Puntos: 35
Re: Mostrar imagen aleatoria a partr de la lectura de un directorio

Sabes trabajar con directorios? Si la respuesta es no, comienza a leer.

Es simple lo que quieres, ve recorriendo cada carpeta por medio de opendir y un while o algo.. al tiempo que haces eso, guardas cada elemento en un arreglo, del cual luego escogeras un solo elemento mediante mt_rand(), rand() o array_rand() y listo, al tener la ruta completa del archivo que salio al azar, puedes mostrar la imagen sin problemas.

Funciones que pienso usaras: opendir, readdir, is_dir, rand/mt_rand/array_rand, closedir

Tambien se que deberas usar una funcion recursiva para leer el directorio galerias y los directorios que estan dentro de esa carpeta, y asi sucesivamente.

Sorry, es lo que se me ocurre para no hacerte yo el codigo.

Edito: Uy, me ganaron xD
__________________
Sin Ideas
  #4 (permalink)  
Antiguo 20/05/2007, 20:31
Avatar de geq
geq
 
Fecha de Ingreso: agosto-2006
Ubicación: Rosario
Mensajes: 655
Antigüedad: 17 años, 8 meses
Puntos: 22
Re: Mostrar imagen aleatoria a partr de la lectura de un directorio

jajaja segun veo parece una buena idea :DD
qe suerte tienes lrunge xDD


exitos
  #5 (permalink)  
Antiguo 20/05/2007, 22:48
Avatar de lrunge  
Fecha de Ingreso: agosto-2005
Ubicación: En algun lugar de Caracas
Mensajes: 165
Antigüedad: 18 años, 9 meses
Puntos: 4
Re: Mostrar imagen aleatoria a partr de la lectura de un directorio

Dios mio, pero que rapidez...

Jejeje a lo mejor les va a parecer incoherente, pero se trabajar con directorios... lo que no sabia es como hacer los arreglos.

jeje

Muchas gracias a todos!!!

salu2
__________________
"La sencillez de una respuesta, sera inversamente proporcional a su explicacion" Luis Runge
  #6 (permalink)  
Antiguo 22/05/2007, 22:39
Avatar de lrunge  
Fecha de Ingreso: agosto-2005
Ubicación: En algun lugar de Caracas
Mensajes: 165
Antigüedad: 18 años, 9 meses
Puntos: 4
Re: Mostrar imagen aleatoria a partr de la lectura de un directorio

Ok... el cerebro no me da

Por mas que he intentado, no me sale nada de lo que quiero, alguien podria ayudarme, muchas gracias

Salu2
__________________
"La sencillez de una respuesta, sera inversamente proporcional a su explicacion" Luis Runge
  #7 (permalink)  
Antiguo 23/05/2007, 10:29
Avatar de geq
geq
 
Fecha de Ingreso: agosto-2006
Ubicación: Rosario
Mensajes: 655
Antigüedad: 17 años, 8 meses
Puntos: 22
Re: Mostrar imagen aleatoria a partr de la lectura de un directorio

envia lo qe ya has hecho

exitos
  #8 (permalink)  
Antiguo 23/05/2007, 21:16
Avatar de lrunge  
Fecha de Ingreso: agosto-2005
Ubicación: En algun lugar de Caracas
Mensajes: 165
Antigüedad: 18 años, 9 meses
Puntos: 4
De acuerdo Re: Mostrar imagen aleatoria a partr de la lectura de un directorio

LO LOGREEEEEEEEEEEEEEEEEEEEEEEEEE!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

ME COSTO, pERO LO LOGREEEEEEEEE!!!

Aqui les pongo el codigo para someterlo a su estudio y si alguien lo puede mejorar, seria genial

Gracias a todos por su ayuda

Código PHP:
<? 
// Selecciono el directorio y lo abro
$carpeta "./galerias";
$dir opendir($carpeta);

// Creo un WHILE para crear el array
while ($elemento readdir($dir))
{
        
// Evito listar los directorio . y ..
        
if ($elemento != "." && $elemento != ".."
        {
        
$directorio[] = $elemento;
        }
        
}
// selecciono algun elemento del array al azar
$carpeta_aleatoria array_rand($directorio);

// Abro el elemento del array que ya seleccione
$archivo "galerias/".$directorio[$carpeta_aleatoria];
$dir opendir($archivo);

// Creo un WHILE para crear el array
while ($elemento readdir($dir))
{
        
// Evito listar los directorio . y ..
        
if ($elemento != "." && $elemento != ".."
        {
        
$directorio[] = $elemento;
        }
        
}
// selecciono algun elemento del array al azar
$imagen_aleatoria array_rand($directorio);
// Lo muestro

echo '<img src="'.$archivo.'/'.$directorio[$imagen_aleatoria].'" alt="" />';

//Cerramos el directorio
closedir($dir); 
?>
__________________
"La sencillez de una respuesta, sera inversamente proporcional a su explicacion" Luis Runge

Última edición por lrunge; 23/05/2007 a las 23:57 Razón: Lo logreee!!!
  #9 (permalink)  
Antiguo 24/05/2007, 07:03
Avatar de geq
geq
 
Fecha de Ingreso: agosto-2006
Ubicación: Rosario
Mensajes: 655
Antigüedad: 17 años, 8 meses
Puntos: 22
Re: Mostrar imagen aleatoria a partr de la lectura de un directorio

esta muy bien ^^

exitos
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.
Tema Cerrado




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