2014-10-17 1 views
0

** Файлы по дате по убыванию, Как это сделать? ** Нужно показать файлы по дате последней в верхнейФайл сортировки Php из каталога в порядке убывания (последний наверху)

function list_dir($dn){ 
    if($dn[strlen($dn)-1] != '\\') $dn.='\\'; 
    static $ra = array(); 
    $handle = opendir($dn); 
    while($fn = readdir($handle)){ 
     if($fn == '.' || $fn == '..') continue; 
     if(is_dir($dn.$fn)) list_dir($dn.$fn.'\\'); 
     else $ra[] = $dn.$fn; 
    } 
    closedir($handle); 
    return $ra; 
} 
$filelist = list_dir('D:\xampp\htdocs'); 
    for($i=0;$i<count($filelist);$i++){ 
     $test = Array(); 
     $year = $test[2]; 
     $day = $test[1]; 
     $month = $test[0];  
     $test = explode("/",date("m/d/Y",filemtime($filelist[$i]))); 
     echo "<span style='color:red;'><b style='color:green;'>".$day.'-'.month.'-'.$year. '</b> ' . $filelist[$i]."</span><br>"; 
    } 
clearstatcache(); 

ответ

1

Вы можете использовать glob, затем arsort сортировать от высокой к низкой.

$files = glob("*"); //Fetch all files. 
$files = array_combine($files, array_map("filemtime", $files)); //Grab the filetime for each file 
arsort($files); //Sort high to low 
echo "<pre>"; 
echo print_r($files, true); 
echo "</pre>"; 

Выход (после форматирования в таблице)

http://i.imgur.com/SPgMH0q.png

<?php 

$files = glob("*"); //Fetch all files. 
$files = array_combine($files, array_map("filemtime", $files)); 
arsort($files); 
echo "<table> 
     <tr> 
     <th>File</th> 
     <th>Last modified</th>"; 
foreach($files as $file => $date) { 
    echo '<tr><td>'. $file .'</td><td>'. date("Y m d g:i:s a", $date).'</td></tr>'; 
} 
echo "</table>"; 
Смежные вопросы