Foros del Web » Programando para Internet » PHP »

Mostrar imagenes de un directorio

Estas en el tema de Mostrar imagenes de un directorio en el foro de PHP en Foros del Web. Hola! Estoy usando un código para que muestre las imágenes dentro de un directorio, las imágenes aparecen una al lado de la otra, y yo ...
  #1 (permalink)  
Antiguo 10/05/2007, 15:53
Avatar de hgp147  
Fecha de Ingreso: diciembre-2006
Ubicación: Buenos Aires, Argentina
Mensajes: 980
Antigüedad: 17 años, 3 meses
Puntos: 36
Pregunta Mostrar imagenes de un directorio

Hola!
Estoy usando un código para que muestre las imágenes dentro de un directorio, las imágenes aparecen una al lado de la otra, y yo lo que quiero es que aparezcan 5 imágenes una al lado de la otra y abajo de estas, 5 imágenes una al lado de la otra y asi sucesivamente.
Les dejo esta imagen como ejemplo de que quiero hacer:


Este es el código que uso:
Código PHP:
<?php
echo "<table><tr>\n";
$directorio opendir(".");
while (
$archivo readdir($directorio))
   {
   
$nombreArch ucwords($archivo);
   
$nombreArch str_replace("..""Atras"$nombreArch);
   echo 
"\n<td width='100' height='100'>\n<a href='$archivo'>\n";
   echo 
"<img src='$archivo' width='100' height='100'";
   echo 
" border=0>\n";
   echo 
"\n\n";
   }
closedir($directorio); 
echo 
"</tr></table>\n";
?>

Gracias!
  #2 (permalink)  
Antiguo 10/05/2007, 20:17
Avatar de cplus  
Fecha de Ingreso: abril-2007
Mensajes: 164
Antigüedad: 17 años
Puntos: 1
Re: Mostrar imagenes de un directorio

pues tendras que tener una variable que sume +1
y un valor maximo de imagenes a mostrar.

Código PHP:
$variable=0
y contar +1,

Código PHP:
$variable++; 
si la variable es mayor que tu valor de imagenes a mostrar añadimos un <TR> al principio y un </TR> al final, con lo que bajaremos en la tabla al campo inferior, volviendo a resetear $variable=0;

Código PHP:
if($variable >= $valor){ echo "<tr>"; } 
ese puede ser un truco rapido para bajar susodicha linea o campo dentro de la tabla


podria quedar algo asi, no se si lo hice correctamente pq no lo he probado, pero la idea es esa, si no te funciona bien puedes corregirlo tu mismo o adaptarlo como quieras.

Código PHP:
<?php
$variable 
0;//seteamos a 0 el sumador
$valor 6;//seteamos a 6 las imagenes a mostrar por cada linea

echo "<table><tr>\n";
$directorio opendir(".");

    while(
$archivo readdir($directorio)){

        
$variable++;//empezamos a sumar +1
        
$nombreArch str_replace("..""Atras"ucwords($archivo));

        if(
$variable >= $valor){ echo "<tr>"; }// si es mayor o igual añadimos <TR>

            
echo "\n<td width='100' height='100'>\n<a href='$archivo'>\n";
            echo 
"<img src='$archivo' width='100' height='100'";
            echo 
" border=0>\n";
            echo 
"\n\n";

        if(
$variable >= $valor){// si es mayor o igual añadimos </TR>
            
echo "</tr>";
            
$variable 0;//seteamos a 0 el sumador y volvemos a empezar si quedan mas imagenes
        
}//end if

    
}//end while
    
closedir($directorio);
echo 
"</tr></table>\n";
?>
.

Última edición por cplus; 10/05/2007 a las 20:28
  #3 (permalink)  
Antiguo 10/05/2007, 21:12
Avatar de jaquez  
Fecha de Ingreso: noviembre-2006
Mensajes: 123
Antigüedad: 17 años, 4 meses
Puntos: 0
Re: Mostrar imagenes de un directorio

bueno junte los 2 codigos y logre hacer lo ke tu pides..
el codigo puesto por cplus funciona solo ke pone 5 imagenes en el primer renglon y en el segundo 1 en el tercero 5 y en el cuarto 1 y asi susecivamente..

edite el codigo ya que es lo ke yo habia estado buscando y aki esta espero te funcione
Código PHP:
<?php
$variable 
0;//seteamos a 0 el sumador
$valor 5;//seteamos a 6 las imagenes a mostrar por cada linea

echo "<table><tr>";
$directorio opendir("img/");

    while(
$archivo readdir($directorio))
    {
        
$variable++;//empezamos a sumar +1
        
$nombreArch str_replace("""Atras"ucwords($archivo));
        if(
$variable $valor){ echo "<tr>";
         }

            echo 
"<td width='' height=''><a href='img/$archivo'>";
            echo 
"<img src='img/$archivo' width='140' height='110'";
            echo 
" border=0>";
            echo 
"";

        if(
$variable >= $valor){// si es mayor o igual añadimos </TR>
            
echo "</tr>";
            
$variable 0;//seteamos a 0 el sumador y volvemos a empezar si quedan mas imagenes
        
}//end if

    
}//end while
    
closedir($directorio);
echo 
"</tr></table>\n";
?>

solo una pregunta por ke el codigo "indexa" carpeta y la raiz osea..
las guardo en una carpeta "img" y a la hora de la ejecucion del codigo me pone un tumb... con un link hacia la carpeta...


gracias muy buen script
  #4 (permalink)  
Antiguo 10/05/2007, 22:25
Avatar de Panino5001
Me alejo de Omelas
 
Fecha de Ingreso: mayo-2004
Ubicación: -34.637167,-58.462984
Mensajes: 5.148
Antigüedad: 19 años, 10 meses
Puntos: 834
Re: Mostrar imagenes de un directorio

Otra opción:
Código PHP:
<div style="width:600px;">
<?php
$dir
='imagenes/'
$images glob("$dir{*.gif,*.jpg,*.png}"GLOB_BRACE); 
foreach(
$images as $v){ 
echo 
'<img src="'.$v.'" border="0" style="width:100px;float:left;margin:10px;" />'

?> 
</div>
  #5 (permalink)  
Antiguo 11/05/2007, 10:02
Avatar de jaquez  
Fecha de Ingreso: noviembre-2006
Mensajes: 123
Antigüedad: 17 años, 4 meses
Puntos: 0
Re: Mostrar imagenes de un directorio

mm no me funciono Panino5001 pero no me sale error..
  #6 (permalink)  
Antiguo 11/05/2007, 11:34
Avatar de Panino5001
Me alejo de Omelas
 
Fecha de Ingreso: mayo-2004
Ubicación: -34.637167,-58.462984
Mensajes: 5.148
Antigüedad: 19 años, 10 meses
Puntos: 834
Re: Mostrar imagenes de un directorio

Posiblemente no tengas habilitado el uso de glob. Igualmente, lo importante no era eso sino la idea de que no es necesario usar tablas y hacer más complejo el script: se puede hacer que las imágenes aparezcan como necesitás, usando un mínimo de estilos css.
  #7 (permalink)  
Antiguo 11/05/2007, 12:15
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Re: Mostrar imagenes de un directorio

Prueba asi:
Código PHP:
<?php
$variable 
0;//seteamos a 0 el sumador
$valor 5;//seteamos a 6 las imagenes a mostrar por cada linea

echo "<table><tr>";
$directorio opendir("img/");

    while(
$archivo readdir($directorio))
    {
        
$nombreArch str_replace("""Atras"ucwords($archivo));
        if(
$variable $valor){ echo "<tr>";
         }

            echo 
"<td width='' height=''><a href='img/$archivo'>";
            echo 
"<img src='img/$archivo' width='140' height='110'";
            echo 
" border=0>";
            echo 
"";

        if(
$variable >= $valor){// si es mayor o igual añadimos </TR>
            
echo "</tr>";
            
$variable 0;//seteamos a 0 el sumador y volvemos a empezar si quedan mas imagenes
        
}//end if
              
$variable++;//empezamos a sumar +1
    
}//end while
    
closedir($directorio);
echo 
"</tr></table>\n";
?>
  #8 (permalink)  
Antiguo 11/05/2007, 12:19
Avatar de Panino5001
Me alejo de Omelas
 
Fecha de Ingreso: mayo-2004
Ubicación: -34.637167,-58.462984
Mensajes: 5.148
Antigüedad: 19 años, 10 meses
Puntos: 834
Re: Mostrar imagenes de un directorio

Me extraña GatorV, vos que sos uno de mis ídolos del foro, que uses comillas simples o directamente ninguna para valores de atributos html...
  #9 (permalink)  
Antiguo 11/05/2007, 12:21
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Re: Mostrar imagenes de un directorio

Solo copie y pegue el código de jaquez, esta mal el lugar donde esta incrementando el contador, de ahí en fuera es código de el
  #10 (permalink)  
Antiguo 11/05/2007, 12:22
Avatar de Panino5001
Me alejo de Omelas
 
Fecha de Ingreso: mayo-2004
Ubicación: -34.637167,-58.462984
Mensajes: 5.148
Antigüedad: 19 años, 10 meses
Puntos: 834
Re: Mostrar imagenes de un directorio

OPS, perdón entonces. Pero es cierto que te considero asi
  #11 (permalink)  
Antiguo 11/05/2007, 12:27
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Re: Mostrar imagenes de un directorio

Pues mil gracias, es todo un honor.
  #12 (permalink)  
Antiguo 11/05/2007, 16:35
Avatar de hgp147  
Fecha de Ingreso: diciembre-2006
Ubicación: Buenos Aires, Argentina
Mensajes: 980
Antigüedad: 17 años, 3 meses
Puntos: 36
Re: Mostrar imagenes de un directorio

Muchas gracias a todos! Me sirvio el código!!!!
  #13 (permalink)  
Antiguo 11/05/2007, 16:35
Avatar de hgp147  
Fecha de Ingreso: diciembre-2006
Ubicación: Buenos Aires, Argentina
Mensajes: 980
Antigüedad: 17 años, 3 meses
Puntos: 36
Sonrisa Re: Mostrar imagenes de un directorio

Muchas gracias a todos! Me sirvio el código!!!!
Solamente tenia un error donde dice:
Código PHP:
$variable 0;//seteamos a 0 el sumador 
Tuve que cambiar el valor 0 por 1, porque sino me mostraba 6 imagenes,abajo 5, despues otra vez 5 y asi sucesivamente. Al reemplazar el 0 por el 1, me funciono perfecto!!!!
  #14 (permalink)  
Antiguo 11/05/2007, 16:47
Avatar de jaquez  
Fecha de Ingreso: noviembre-2006
Mensajes: 123
Antigüedad: 17 años, 4 meses
Puntos: 0
Re: Mostrar imagenes de un directorio

si a mi ya me habia funcionado
de todas formas muchas graciassss
a por cierto soy novato en php aja por eso las comillas o errores en el codigo
espero ir avanzando poko a poko
en este foro aprendere estoy seguroooo
  #15 (permalink)  
Antiguo 16/05/2007, 10:38
 
Fecha de Ingreso: octubre-2004
Ubicación: Lima, Perú
Mensajes: 185
Antigüedad: 19 años, 5 meses
Puntos: 1
Re: Mostrar imagenes de un directorio

Este quisiera saber si se puede mostrar una imagen de una carpeta?, este el primero mejor dicho, como una presentacion para darle clik a esa imagen y entren al directorio, como seria el codigo.
gracias de antemano.
__________________
VkManga.Com
De todo un Poco
  #16 (permalink)  
Antiguo 22/07/2007, 13:13
Avatar de merolhack  
Fecha de Ingreso: junio-2006
Ubicación: México
Mensajes: 1.242
Antigüedad: 17 años, 10 meses
Puntos: 16
Re: Mostrar imagenes de un directorio

Bueno a mi me mostraba dos imagenes sin contenido, por que como se listan todos los archivos del directorio, tambien mostraba el . y el .. que no se que sean, pero siempre estan en los directorios de sistemas como Ubuntu(Unix).

Asi que le agregue lo siguiente:

Código PHP:
<?php
if (strpos($file'.gif',1) || strpos($file'.jpg',1) || strpos($file'.png',1) ) {
                    
bla bla bla...
                    
bla bla bla...
                    
bla bla bla...
}
?>
O sea que quedo asi:
Código PHP:
<?php
// Configuraciones
$variable 1;//seteamos a 0 el sumador
$valor 5;//seteamos a 6 las imagenes a mostrar por cada linea
$directorio opendir("galeria");

// Verificamos que el directorio tenga una diagonal al final
//if (substr($directorio,-1) != '/') {
//    $directorio = $directorio.'/';
//}

echo "<table>\n<tr>\n";

while (
false !== ($archivo readdir($directorio))) {
    
$nombreArch str_replace("""Atras"ucwords($archivo));
    if (
strpos($archivo'.gif',1) || strpos($archivo'.jpg',1) || strpos($archivo'.png',1) || strpos($archivo'.bmp',1)) {
        if(
$variable $valor){
            echo 
"<tr>\n";
         }

        echo 
"<td width='' height=''>\n<a href='galeria/$archivo'>";
        echo 
"<img src='galeria/$archivo' width='140' height='110'";
        echo 
" border=0>\n";
        echo 
"";

        if(
$variable >= $valor){// si es mayor o igual añadimos </TR>
            
echo "</tr>";
            
$variable 0;//seteamos a 0 el sumador y volvemos a empezar si quedan mas imagenes
        
}//end if
        
$variable++;//empezamos a sumar +1
    
}
}
//end while

closedir($directorio);
echo 
"</tr>\n</table>\n";
?>
  #17 (permalink)  
Antiguo 27/12/2009, 13:58
 
Fecha de Ingreso: diciembre-2009
Mensajes: 1
Antigüedad: 14 años, 3 meses
Puntos: 0
Respuesta: Mostrar imagenes de un directorio

He probado el código de merolhack y ha funcionado bien, solo que faltaria cerrar las celdas si no en IE 6 se ve mal la tabla.

Les dejo el código:

Código PHP:
<?php
// Configuraciones
$variable 1;//seteamos a 0 el sumador
$valor 5;//seteamos a 6 las imagenes a mostrar por cada linea
$directorio opendir("galeria");

// Verificamos que el directorio tenga una diagonal al final
//if (substr($directorio,-1) != '/') {
//    $directorio = $directorio.'/';
//}

echo "<table>\n<tr>\n";

while (
false !== ($archivo readdir($directorio))) {
    
$nombreArch str_replace("""Atras"ucwords($archivo));
    if (
strpos($archivo'.gif',1) || strpos($archivo'.jpg',1) || strpos($archivo'.png',1) || strpos($archivo'.bmp',1)) {
        if(
$variable $valor){
            echo 
"<tr>\n";
         }

        echo 
"<td width='' height=''>\n<a href='galeria/$archivo'>";
        echo 
"<img src='galeria/$archivo' width='140' height='110'";
        echo 
" border=0>\n";
        echo 
"";
        echo 
"</td>";

        if(
$variable >= $valor){// si es mayor o igual añadimos </TR>
            
echo "</tr>";
            
$variable 0;//seteamos a 0 el sumador y volvemos a empezar si quedan mas imagenes
        
}//end if
        
$variable++;//empezamos a sumar +1
    
}
}
//end while

closedir($directorio);
echo 
"</tr>\n</table>\n";
?>
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 17:55.