Foros del Web » Programando para Internet » PHP »

Mostrar X imagenes de directorio

Estas en el tema de Mostrar X imagenes de directorio en el foro de PHP en Foros del Web. Cual sera la manera de mostrar X imagenes que tengo dentro de una carpeta y que estas vayan cambiando aleatoriamente...?? Esque me gustaria mostrar por ...
  #1 (permalink)  
Antiguo 31/08/2007, 07:55
Avatar de OsSk4R  
Fecha de Ingreso: octubre-2006
Ubicación: $this->home
Mensajes: 824
Antigüedad: 17 años, 6 meses
Puntos: 74
Mostrar X imagenes de directorio

Cual sera la manera de mostrar X imagenes que tengo dentro de una carpeta y que estas vayan cambiando aleatoriamente...??

Esque me gustaria mostrar por ejemplo 4 imagenes con sus respectivos nombres y minimizadas a un tamaño establecido por mi y que éstas aleatoriamente vayan cambiando (pero sin utilizar arrays).

He encontrado varios ejemplos pero no me funcionan,otros por ejemplo pues no me sirven ya que son mas completos y no quiero eso por ahora.

Saludos,
  #2 (permalink)  
Antiguo 31/08/2007, 08:09
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Re: Mostrar X imagenes de directorio

Si no quieres usar arrays (no entiendo porque) la otra manera es usando bases de datos para sacar aleatoriamente 4 registros (aunque estas te regresarian en un array pero bueno..), te recomiendo subas tus imagenes a una base de datos y cuando hagas el SELECT lo hagas asi mas o menos:

Código:
SELECT * FROM imagenes ORDER BY RAND() LIMIT 4
Saludos.
  #3 (permalink)  
Antiguo 31/08/2007, 08:48
Avatar de eft0  
Fecha de Ingreso: junio-2003
Ubicación: Santiago - Chile
Mensajes: 635
Antigüedad: 20 años, 10 meses
Puntos: 9
Re: Mostrar X imagenes de directorio

Luego cambiar el tamaño si quieres, o bien por GD on the fly.

Código PHP:
<?php
$dir 
"/imagenes/";

if (
is_dir($dir)) {
    if (
$gd opendir($dir)) {
        while ((
$archivo readdir($gd)) !== false) {
            echo 
"<img src='$archivo' width='100' heigh='100' />\n";
        }
        
closedir($gd);
    }
}
?>
  #4 (permalink)  
Antiguo 31/08/2007, 14:48
Avatar de OsSk4R  
Fecha de Ingreso: octubre-2006
Ubicación: $this->home
Mensajes: 824
Antigüedad: 17 años, 6 meses
Puntos: 74
Re: Mostrar X imagenes de directorio

Buenas

Lo de los arrays lo decia por si se ocurria de dar algun ejemplo como este:

Cita:
<?php
$numbanners = 3; //numero de banners que se rotar&aacute;n
$random = rand(1,$numbanners);
$extension = ".gif";
$carpeta = "banners";
$image_name = $random . $extension;
$img = array();
$url = array();
$txt = array();

$img[1] = "1.gif";
$url[1] = "http://web.com";
$txt[1] = "Visita el enlace del banner 1";

$img[2] = "2.gif";
$url[2] = "http://web.com";
$txt[2] = "Visita el enlace del banner 2";

$img[3] = "3.gif";
$url[3] = "http://web.es";
$txt[3] = "Visita el enlace del banner 3";

echo "<a href='$url[$random]' target='_blank'><img src='$carpeta/$image_name' alt='$txt[random]' border='0'></a>";
?>
En este caso este codigo no me sirve puesto que he de especificar las imagenes que se deben de mostrar.

Si hay alguna manera de hacerlo sin tener que especificar yo manualmente las imagenes que se deben de mostrar pues bien,encantado de que me digan algo.

Lo de la base de datos actualmente no puede ser ya que por ahora pues no las estoy guardando en BD

Muchas gracias a los dos!
  #5 (permalink)  
Antiguo 31/08/2007, 15:16
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Re: Mostrar X imagenes de directorio

Debes de especificar alguna forma de entrar las imagenes para procesarlas, otra opcion es escanear directamente el directorio donde esten tus imagenes usando opendir y readdir para leer cada entrada, e irlas agregando en un arreglo.

Posteriormente sacar aleatoriamente 4 y obtener tu resultado.

Saludos.
  #6 (permalink)  
Antiguo 01/09/2007, 04:46
 
Fecha de Ingreso: septiembre-2006
Mensajes: 64
Antigüedad: 17 años, 7 meses
Puntos: 2
Re: Mostrar X imagenes de directorio

Creo que te estas complicando demasiado. Yo usaria array sin dudarlo, y NO, NO tienes que saber las imagenes que tienes de antemano.
Un ejemplo:
Código PHP:
<?
$dir 
opendir("./fotos/"); //    Abrimos el directorio de las fotos.
$lista = array(); //    Creamos una array vacio.
while($leer readdir($dir))
{
    
//    Obtenemos la extension.
    
$ext end(explode(".",$leer));
    
//    Vamos llenando el array si son extensiones validas.
    
if($ext == "gif" || $ext == "jpg"$lista[] .= $leer;
}
//Cerramos el directorio.
closedir($dir);
//    Mezclamos aleatoriamente el array.
shuffle($lista);
//    Contamos el numero de fotos.
$total count($lista);
//    Para prevenir errores, si el numero de fotos a mostrar es mayor que las que hay
//    mostramos las que hay.
$num_images 4;
if(
$total $num_images$num_images $total;

//    Mostramos las fotos.
for($i 0$i $num_images$i++)
{
echo 
'<img src="'.$lista[$i].'" />';
}
?>
Con esto muestras 4 imagenes ("$num_images") del directorio ("$dir") de forma aleatoria.
Para el tema del tamaño tienes que usar alguna libreria grafica, por ejemplo GD library. A mi me funciona bastante bien.
Tienes mucha documentacion, la mayor parte traducida, para obtener tamaños, manipular, etc en:
Gd_info

Espero que te sirva. Un saludo.

Última edición por amokiller; 01/09/2007 a las 04:54
  #7 (permalink)  
Antiguo 06/09/2007, 11:46
 
Fecha de Ingreso: septiembre-2007
Mensajes: 5
Antigüedad: 16 años, 7 meses
Puntos: 0
Re: Mostrar X imagenes de directorio

Gracias Amokiller. Es un código muy claro y entendedor.
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 17:24.