Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Enlistar archivos por fechas

Estas en el tema de Enlistar archivos por fechas en el foro de PHP en Foros del Web. Hola a todos, Por ahi encontre este codigo php, y funciona muy bien,,, pero no he podido hacer que me enliste los archivos y directorios ...
  #1 (permalink)  
Antiguo 12/03/2014, 19:49
cer
 
Fecha de Ingreso: abril-2002
Ubicación: Cd. Juarez
Mensajes: 63
Antigüedad: 22 años
Puntos: 0
Enlistar archivos por fechas

Hola a todos,

Por ahi encontre este codigo php, y funciona muy bien,,, pero no he podido hacer que me enliste los archivos y directorios por orden de fecha o numerico o alfabetico. Epsero puedan ayudarme a modificar este codigo.

De antemano Gracias por su ayuda.

<?php
//ruta a la carpeta, '.' es carpeta actual
$path=".";
$no_mostrar=Array("",".","php");
$dir_handle = @opendir($path) or die("No se pudo abrir $path");
while ($file = readdir($dir_handle)) {
$pos=strrpos($file,".");
$extension=substr($file,$pos);
if (!in_array($extension, $no_mostrar)) {
echo "<li><a href=\"$file\" id=\"enlace_$file\" title=\"$file\">$file</a></li>";
}
}
closedir($dir_handle);
?>
  #2 (permalink)  
Antiguo 12/03/2014, 20:06
Avatar de enlinea777  
Fecha de Ingreso: mayo-2008
Ubicación: frente al pc
Mensajes: 1.830
Antigüedad: 15 años, 11 meses
Puntos: 127
Respuesta: Enlistar archivos por fechas

tienes que crear el arreglo con las fechas como key's y luego ordenas el array despues lo despliegas con un foreach
  #3 (permalink)  
Antiguo 12/03/2014, 20:15
cer
 
Fecha de Ingreso: abril-2002
Ubicación: Cd. Juarez
Mensajes: 63
Antigüedad: 22 años
Puntos: 0
Respuesta: Enlistar archivos por fechas

Gracias por responder,,, pero sabes, no se mucho de php. Podrias iluminarme un poco mas? Gracias!
  #4 (permalink)  
Antiguo 12/03/2014, 20:31
Avatar de enlinea777  
Fecha de Ingreso: mayo-2008
Ubicación: frente al pc
Mensajes: 1.830
Antigüedad: 15 años, 11 meses
Puntos: 127
Respuesta: Enlistar archivos por fechas

Pues es algo asi, pequeño saltamontes


Código PHP:
<?php
//ruta a la carpeta, '.' es carpeta actual
$path=".";
$no_mostrar=Array("",".","php");
$dir_handle = @opendir($path) or die("No se pudo abrir $path");
while (
$file readdir($dir_handle)) {
    
$pos=strrpos($file,".");
    
$extension=substr($file,$pos);
    if (!
in_array($extension$no_mostrar)) {
        
$FechaDelArchivo=filemtime(dirname(__FILE__)."/".$file);
        
$archivos[$FechaDelArchivo]=$file;
    }
    }
closedir($dir_handle);
krsort($archivos);//REORDENO POR FECHAS
foreach ($archivos as  $value) { // RECORRER EL ARREGLO ORDENADO
    
echo "<li><a href=\"$value\" id=\"enlace_$value\" title=\"$value\">$value</a></li>";
}

?>
  #5 (permalink)  
Antiguo 12/03/2014, 20:47
cer
 
Fecha de Ingreso: abril-2002
Ubicación: Cd. Juarez
Mensajes: 63
Antigüedad: 22 años
Puntos: 0
Respuesta: Enlistar archivos por fechas

Hola de nuevo,,, sabes, solo me muestra un archivo en lista, no me aparece mas como antes. El codigo lo pase tal cual me lo enviaste.
  #6 (permalink)  
Antiguo 13/03/2014, 07:15
Avatar de enlinea777  
Fecha de Ingreso: mayo-2008
Ubicación: frente al pc
Mensajes: 1.830
Antigüedad: 15 años, 11 meses
Puntos: 127
Respuesta: Enlistar archivos por fechas

Cita:
Iniciado por cer Ver Mensaje
Hola de nuevo,,, sabes, solo me muestra un archivo en lista, no me aparece mas como antes. El codigo lo pase tal cual me lo enviaste.
Cual es el resultado de esto?
Código PHP:
 <?php
//ruta a la carpeta, '.' es carpeta actual
$path=dirname(__FILE__);
$no_mostrar=Array("",".","php");
$dir_handle = @opendir($path) or die("No se pudo abrir $path");
while (
$file readdir($dir_handle)) {
    
$pos=strrpos($file,".");
    
$extension=substr($file,$pos);
    if (!
in_array($extension$no_mostrar)) {
        
$FechaDelArchivo=filemtime($path."/".$file);
        echo 
$path."/".$file."<br>";
        
$archivos[$FechaDelArchivo]=$file;
    }
    }
closedir($dir_handle);
krsort($archivos);//REORDENO POR FECHAS
foreach ($archivos as  $value) { // RECORRER EL ARREGLO ORDENADO
    
echo "<li><a href=\"$value\" id=\"enlace_$value\" title=\"$value\">$value</a></li>";
}
?>
  #7 (permalink)  
Antiguo 13/03/2014, 08:12
cer
 
Fecha de Ingreso: abril-2002
Ubicación: Cd. Juarez
Mensajes: 63
Antigüedad: 22 años
Puntos: 0
Respuesta: Enlistar archivos por fechas

Esto es lo que me muestra.

Listado de archivo


/home/xxxx/public_html/photobooth/galerias/Zpaptos
/home/xxxx/public_html/photobooth/galerias/12
/home/xxxx/public_html/photobooth/galerias/Xolil
/home/xxxx/public_html/photobooth/galerias/test.php
/home/xxxx/public_html/photobooth/galerias/Boda de X y Y
/home/xxxx/public_html/photobooth/galerias/Dia del anio
/home/xxxx/public_html/photobooth/galerias/Dia de la Bandera
test.php
12
Xolil
Dia de la Bandera
Dia del anio

Me muestra lista de direcciones y luego enlaces (no ordenados). El test.php es donde se encuentra el codigo.

Gracias por tu tiempo que estas usando en esto. Salu2.
  #8 (permalink)  
Antiguo 13/03/2014, 10:26
Avatar de enlinea777  
Fecha de Ingreso: mayo-2008
Ubicación: frente al pc
Mensajes: 1.830
Antigüedad: 15 años, 11 meses
Puntos: 127
Respuesta: Enlistar archivos por fechas

esta ordenando por fechas como dice el post (Enlistar archivos por fechas)

si necesitas que ordene alphaveticamente usa
sort($archivos); en lugar de krsort($archivos);
  #9 (permalink)  
Antiguo 13/03/2014, 10:51
cer
 
Fecha de Ingreso: abril-2002
Ubicación: Cd. Juarez
Mensajes: 63
Antigüedad: 22 años
Puntos: 0
Respuesta: Enlistar archivos por fechas

Si, si tienes razon, lo siento,,, ya nada mas solo 2 puntitos que no podido modificar,,,

1. leer archivos de otra carpeta
2. quitar todo los "/home/xxxx/,,,,,,,,," de la lista.

Muchas Gracias por tu valiosa ayuda.
  #10 (permalink)  
Antiguo 13/03/2014, 11:32
Avatar de hhs
hhs
Colaborador
 
Fecha de Ingreso: junio-2013
Ubicación: México
Mensajes: 2.995
Antigüedad: 10 años, 9 meses
Puntos: 379
Respuesta: Enlistar archivos por fechas

Si te interesa orientado a objetos puedes hacer uso de FileSystemIterator:
Código PHP:
Ver original
  1. $iterable = new FilesystemIterator(dirname(__FILE__));
  2. foreach ($iterable as $fileinfo) {
  3.     if(!$fileinfo->isDir()){
  4.         $array[$fileinfo->getMTime()] = $fileinfo->getFilename();
  5.     }
  6. }
  7.  
  8. krsort($array);
  9.  
  10. foreach($array as $k => $v){
  11.     $date = new DateTime();
  12.     $date->setTimestamp($k);
  13.     echo "{$date->format('Y-m-d')} --> $v" .'<br>';
  14. }
__________________
Saludos
About me
Laraveles
A class should have only one reason to change.
  #11 (permalink)  
Antiguo 13/03/2014, 12:05
cer
 
Fecha de Ingreso: abril-2002
Ubicación: Cd. Juarez
Mensajes: 63
Antigüedad: 22 años
Puntos: 0
Respuesta: Enlistar archivos por fechas

Gracias hhs, pero necesito enlistar archivos y carpetas con su respectivo enlace,,, ya estaba funcionando el codigo que amablemente me proporciono enlinea777, solo faltaba hacer los cambios que le indique en el mensaje anterior. Gcs.
  #12 (permalink)  
Antiguo 13/03/2014, 12:35
Avatar de enlinea777  
Fecha de Ingreso: mayo-2008
Ubicación: frente al pc
Mensajes: 1.830
Antigüedad: 15 años, 11 meses
Puntos: 127
Respuesta: Enlistar archivos por fechas

Cita:
Iniciado por cer Ver Mensaje
Si, si tienes razon, lo siento,,, ya nada mas solo 2 puntitos que no podido modificar,,,

1. leer archivos de otra carpeta
2. quitar todo los "/home/xxxx/,,,,,,,,," de la lista.

Muchas Gracias por tu valiosa ayuda.
Código PHP:
<?php
//ruta a la carpeta, '.' es carpeta actual
$path=dirname(__FILE__); // dirname(__FILE__) esla ruta absoluta actual, PARA USAR OTRA CARPETA HAY QUE DARLE LA RUTA 
$no_mostrar=Array("",".","php");
$dir_handle = @opendir($path) or die("No se pudo abrir $path");
while (
$file readdir($dir_handle)) {
    
$pos=strrpos($file,".");
    
$extension=substr($file,$pos);
    if (!
in_array($extension$no_mostrar)) {
        
$FechaDelArchivo=filemtime($path."/".$file); //filemtime NECESITA LA RUTA ABSOLUTA POR ESO $path USA dirname(__FILE__)

        
$archivos[$FechaDelArchivo]=$file;
    }
    }
closedir($dir_handle);
krsort($archivos);//REORDENO POR FECHAS
foreach ($archivos as  $value) { // RECORRER EL ARREGLO ORDENADO
    
echo "<li><a href=\"$value\" id=\"enlace_$value\" title=\"$value\">$value</a></li>";
}
?>
  #13 (permalink)  
Antiguo 13/03/2014, 12:37
Avatar de enlinea777  
Fecha de Ingreso: mayo-2008
Ubicación: frente al pc
Mensajes: 1.830
Antigüedad: 15 años, 11 meses
Puntos: 127
Respuesta: Enlistar archivos por fechas

Cita:
Iniciado por hhs Ver Mensaje
si te interesa orientado a objetos puedes hacer uso de filesystemiterator:
Código php:
Ver original
  1. $iterable = new filesystemiterator(......

jajaja debes de saber que el que pregunta es nuevo y no creo que sepa de poo
  #14 (permalink)  
Antiguo 13/03/2014, 12:43
Avatar de hhs
hhs
Colaborador
 
Fecha de Ingreso: junio-2013
Ubicación: México
Mensajes: 2.995
Antigüedad: 10 años, 9 meses
Puntos: 379
Respuesta: Enlistar archivos por fechas

Cita:
Iniciado por enlinea777 Ver Mensaje
jajaja debes de saber que el que pregunta es nuevo y no creo que sepa de poo
Excelente! ya tiene dos alternativas
__________________
Saludos
About me
Laraveles
A class should have only one reason to change.
  #15 (permalink)  
Antiguo 13/03/2014, 14:09
cer
 
Fecha de Ingreso: abril-2002
Ubicación: Cd. Juarez
Mensajes: 63
Antigüedad: 22 años
Puntos: 0
Respuesta: Enlistar archivos por fechas

Muchas Gracias,,, ya funciona como lo queria.

Gracias por el tiempo de ustedes y su comprension, Gracias por la ayuda.

enlinea777, Muchisimas Gracias.

hhs, Gracias por la otra opcion.

MUY agradecido.


Salu2.

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 04:44.