Foros del Web » Programando para Internet » PHP »

listar archvios segun fecha

Estas en el tema de listar archvios segun fecha en el foro de PHP en Foros del Web. hola amigos espero me puedan ayudar , la situaciòn es la siguiente: En un directorio tengo n archivos de imagenes (gif) y con php estoy ...
  #1 (permalink)  
Antiguo 29/05/2013, 14:55
 
Fecha de Ingreso: septiembre-2010
Mensajes: 1.853
Antigüedad: 13 años, 6 meses
Puntos: 6
listar archvios segun fecha

hola amigos espero me puedan ayudar , la situaciòn es la siguiente:

En un directorio tengo n archivos de imagenes (gif) y con php estoy listando los archivos de las imagenes , los archivos tienen la siguiente estructura montes28_2013_05_27_00_00.gif donde montes28 es el usuario y luego la fecha AAAA_MM_DD.gif necesito listar los archivos que tengan la fecha del dia anterior

hasta el momento este es mi codigo:

de esta manera obtengo la fecha actual del sistema y le resto un dia
Código PHP:
Ver original
  1. <?php
  2.   $fecha = date('F j, Y');
  3.   $nuevafecha = strtotime ( '-1 day' , strtotime ( $fecha ) ) ;
  4.   $nuevafecha = date ( 'F j, Y' , $nuevafecha );
  5.  
  6. echo "<strong>".$nuevafecha."</strong>";
  7. ?>

de esta menera listo los archivos del la directorio

Código PHP:
Ver original
  1. <?php
  2. $directorio = opendir("./image/");
  3. while ($archivo = readdir($directorio))
  4. {
  5.     if (is_dir($archivo))
  6.     {
  7.        
  8.     }
  9.     else
  10.     {
  11.       $data=$archivo;
  12.       list($estacion, $año, $mes, $dia) = explode("_", $data);
  13.       ?>
  14.    
  15.     <li class="span2" >
  16.     <div class="thumbnail">
  17.     <?php echo "<a href='/image/$archivo' target='_blank'><img src='./image/$archivo' alt='ALT NAME' height='300' width='200px'></a>";?>
  18.     <div class="caption">
  19.       <h3><?php echo $estacion ?></h3>
  20.       <p><?php echo $año."-".$mes."-".$dia?></p>
  21.       <p align="center"><?php echo "<a href='/image/$archivo' target='_blank' class='btn btn-primary btn-block'>"; ?>Ver</a></p>
  22.     </div>
  23.   </div>
  24. </li>
  25.  
  26.  
  27.     <?php
  28.   }
  29.  
  30. }
  31. ?>
  #2 (permalink)  
Antiguo 29/05/2013, 17:50
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: listar archvios segun fecha

Y el problema... cuál dices que es?

Sugiérote usar glob() en vez de opendir() + readdir()
__________________
- León, Guanajuato
- GV-Foto
  #3 (permalink)  
Antiguo 29/05/2013, 19:44
 
Fecha de Ingreso: septiembre-2010
Mensajes: 1.853
Antigüedad: 13 años, 6 meses
Puntos: 6
Respuesta: listar archvios segun fecha

tryby gracias por responder, ya avance en el codigo pero tengo un problema con la verificacion si es o no un directorio

como puedo arreglarlo?

es posible mejorar este código?

Código PHP:
Ver original
  1. <?php
  2. $fecha_actual = date('Y-m-j');
  3. $dia_anterior = strtotime ( '-1 day' , strtotime ( $fecha_actual ) ) ;
  4. $dia_anterior = date ( 'm.d.Y' , $dia_anterior);
  5. list($mes1, $dia1, $año1) = explode(".", $dia_anterior);
  6. $a=$año1.$mes1.$dia1;
  7. echo $a."<br>";
  8. $directorio = opendir("./image/");
  9. while (false !==($archivo = readdir($directorio)))
  10. {
  11.  
  12.     if (is_dir($archivo))
  13.     {
  14.        
  15.     }
  16.     else
  17.     {
  18.         //echo $archivo."<br>";
  19.       $data=$archivo;
  20.       $data=$archivo;
  21.       list($estacion, $año, $mes, $dia) = explode("_", $data);
  22.       $rest = substr($data, 5, -6);
  23.       list($año2, $mes2, $dia2) = explode("_", $rest);
  24.       $b= $año2.$mes2.$dia2;
  25.       if ($a == $b) {
  26.           //echo $archivo."<br>";
  27.         ?>
  28.         <li class="span2" >
  29.     <div class="thumbnail">
  30.     <?php echo "<a href='/image/$archivo' target='_blank'><img src='./small/$archivo' alt='ALT NAME' height='300' width='200px'></a>";?>
  31.     <div class="caption">
  32.       <h3><?php echo $estacion ?></h3>
  33.       <p><?php echo $año."-".$mes."-".$dia?></p>
  34.       <p align="center"><?php echo "<a href='/image/$archivo' target='_blank' class='btn btn-primary btn-block'>"; ?>Ver</a></p>
  35.     </div>
  36.   </div>
  37. </li>
  38.  
  39.       <?php
  40.       }
  41.       //echo $b."<br>";
  42.     }  
  43. }
  44. ?>

intente utilizar glob pero no me funciono , que estoy haciendo mal?

Código PHP:
Ver original
  1. <?php
  2. $directory = "./image/";
  3. $images = glob($directory . "*.gif");
  4. foreach($images as $image)
  5. {
  6. echo $image '<br />';
  7. }
  8. ?>

Última edición por Montes28; 29/05/2013 a las 21:28
  #4 (permalink)  
Antiguo 29/05/2013, 22:32
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: listar archvios segun fecha

Qué problema tienes con verificar si es o no un directorio?

Yo cambiaría ese if que tienes por algo como:
Código PHP:
Ver original
  1. if(!is_dir($archivo) && substr($archivo, -4) == '.gif') {
  2.     // Aquí verificas si el archivo corresponde a la fecha
  3. }

Luego, tampoco mencionas el problema que tienes con glob, pero supongo que es por la variable $directory en vez de $directorio; además, tal vez podrías crear un patrón similar a esto: glob($directorio, '*_2013_05_27_*.gif');

Prueba y, si no funciona, por favor sé más específico, es difícil tratar de adivinar.
__________________
- León, Guanajuato
- GV-Foto

Etiquetas: fecha
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 23:35.