Foros del Web » Programando para Internet » PHP »

Mostrar archivos segun su fecha de creación

Estas en el tema de Mostrar archivos segun su fecha de creación en el foro de PHP en Foros del Web. Saludos a todos... Amigos quiero saber si hay alguna forma de mostrar archivos segun su fecha de modificación... ya que no al mostrarlos aparecen sin ...
  #1 (permalink)  
Antiguo 15/11/2005, 10:57
 
Fecha de Ingreso: octubre-2005
Mensajes: 3
Antigüedad: 12 años, 1 mes
Puntos: 0
Mostrar archivos segun su fecha de creación

Saludos a todos... Amigos quiero saber si hay alguna forma de mostrar archivos segun su fecha de modificación... ya que no al mostrarlos aparecen sin ningun tipo de orden utilicio el siguiente script para mostrarlos:

function ContenidoDir($fr)// Función para mostrar las imagenes dentro de un directorio pide la ubicacion de las imagenes
{
//definimos el path de acceso
$path=$fr;
//instanciamos el objeto
$dir=dir($path);
$x=0;
while ($elemento = $dir->read())
{
if ($elemento != "." && $elemento != "..")
{
echo "<img src= ".$fr."".$elemento." hspace=20 vspace=20 border=0>";
$x=$x+1;
}
}
//Cerramos el directorio
$dir->close();
}

Tambien lo hago a través de un arreglo pero de igual manera la lectura de los archivos la hace de manera desordenada... Gracias de antemano por la ayuda que me puedan prestar...
  #2 (permalink)  
Antiguo 15/11/2005, 11:29
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Lo primero que debes es leer ese directorio hacia un array, en tu casos tendrá que ser asociativo para que puedas guardar la información del nombre del archivo, la fecha de creación y otros datos del archivo que eventualmente quieras obtener.

Código PHP:
if ($elemento != "." && $elemento != ".."
{

// generación array multidimensional .. 
$archivo[$x]['ruta_nombre']=$fr.$elemento;
$archivo[$x]['fecha']=filemtime($fr.$elemento); // o fileatime() o filectime() usa la que necesites.
$archivo[$x]['peso']=filesize($fr.elemento);

$x=$x+1;


Puedes ver muchos ejemplos al respecto (trabajo con directorios y lectura de archivos) en:
http://www.php.net/manual/en/function.readdir.php

A continuación, ordenas ese array asociativo multidimensional por el parámetro que quieras y lo recorres para mostrarlo (en tu caso para esa generación de tag de imagen en HTML).

Código PHP:
function multi_sort($array$akey)
{  
  function 
compare($a$b)
  {
     global 
$key;
     return 
strcmp($a[$key], $b[$key]);
  } 
  
usort($array"compare");
  return 
$array;
}

$archivo multi_sort($archivo$key 'fecha'); // creo que su uso es así .. no lo he probado. 
(extraido de los comentarios de los usaurios de:
http://www.php.net/manual/en/functio...-multisort.php
Tienes más ejemplos al respecto)

Y por último .. recorre ese array generado y ordenado.

Código PHP:
for($x=0$x<count($archivo); $x++){
echo 
$archivo[$x]['ruta_nombre']." --> "$archivo[$x]['fecha']." --> "$archivo[$x]['peso']."<br>";

Un saludo,
  #3 (permalink)  
Antiguo 15/11/2005, 11:32
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Un detalle ..

La fecha no sé en que formato se obtiene (de filemtime()) .. Si es de tipo "string" (algo tipo xx/xx/xxx o simliar) para el ordenamiento te vendría bien pasar esas fechas a TIMESTAMP (usando mktime() dependiendo de lo que obtengas desglosando sus partes) y luego aplicar DATE() a la hora de ver esas fechas para darle el formato que gustes.

Un saludo,
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 02:22.