Este código nos ayuda a ordenar los archivos en cualquier directorio de nuestro sitio web. Hacemos uso de la función filemtime para obtener la hora de modificación del archivo. Veamos.
function Sort_Directory_Files_By_Last_Modified($dir, $sort_type = 'descendente', $date_format = "F d Y H:i:s."){
$files = scandir($dir);
$array = array();
foreach($files as $file){
if($file != '.' && $file != '..'){
$now = time();
$last_modified = filemtime($dir.$file);
$time_passed_array = array();
$diff = $now - $last_modified;
$days = floor($diff / (3600 * 24));
if($days){
$time_passed_array['dias'] = $days;
}
$diff = $diff - ($days * 3600 * 24);
$hours = floor($diff / 3600);
if($hours){
$time_passed_array['horas'] = $hours;
}
$diff = $diff - (3600 * $hours);
$minutes = floor($diff / 60);
if($minutes){
$time_passed_array['minutos'] = $minutes;
}
$seconds = $diff - ($minutes * 60);
$time_passed_array['segundos'] = $seconds;
$array[] = array('file' => $file,
'timestamp' => $last_modified,
'date' => date ($date_format, $last_modified),
'time_passed' => $time_passed_array);
}
}
usort($array, create_function('$a, $b', 'return strcmp($a["timestamp"], $b["timestamp"]);'));
if($sort_type == 'descendente'){
krsort($array);
}
return array($array, $sort_type);
}
Ahora simplemente configuraremos un par de opciones y llamaremos a esta función, veamos:
$dir = dirname(__FILE__)."\\"; // termina en slash invertido y escapamos
$array = Sort_Directory_Files_By_Last_Modified($dir);
// info array
$info = $array[0];
// tipo de ordenado
$sort_type = $array[1];
echo '<h3>'.$dir.'</h3>';
echo 'Ordenado por: Ultima modificacion ('.$sort_type.')<br />';
foreach($info as $key => $detail){
echo '<h4 style="color: #3B4F9F;">'.$detail['file'].'</h4>';
echo 'Ultima modificacion: '.$detail['date'].'<br />';
$time_passed = '';
foreach($detail['time_passed'] as $type => $value){
$time_passed .= $value." ".$type.", ";
}
$time_passed = "hace <span style='color: #377420;'> ".rtrim($time_passed, ", ")."</span>";
echo $time_passed."\n\n";
}
El resultado final:
Visto y probado desde BitRepository
Hola muy buenas,
Enhorabuena por tu script, pero necesito algo mças complicado.. ordenar los archivos por el parámetro ” Imagen tomada el día “..
Muchas gracias y un saludo!
Chingon, ya lo implemente. y ademas de todo, esta genial SALUDOS
MX