原來使用dir方式的程式,無法依日期排序 $src_dir = "e:\\ftp\\005server\\";
$d = dir($src_dir); while($entry=$d->read()) { if ($entry != "." && $entry != ".."){ echo "$entry."---".date("Y-m-d H:i:s",filemtime($src_dir.$entry))."---".filesize($src_dir.$entry)."<br>"; } } $d->close(); |

使用function Sort_Files_By_Date,可以依檔案日期排序列出
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title></title>
</head> <body>
<?php date_default_timezone_set('Asia/Taipei'); $src_dir = "c:\\temp\\"; $array = Sort_Files_By_Date($src_dir, "descending", "Y-m-d H:i:s"); $info = $array[0]; $sort_type = $array[1];
echo "目錄:".$src_dir."<br>"; echo "排序by:檔案最後修改日 (".$sort_type.")<br />"; foreach($info as $key => $detail) { echo "檔名:".$detail['file']."---大小:".$detail['size']."<br>"; echo "最後修改日:".$detail['date']."---";
$time_passed = ''; foreach($detail['time_passed'] as $type => $value) { $time_passed .= $value." ".$type.", "; } $time_passed = rtrim($time_passed, ", ")." 前"; echo $time_passed."<br>---------------------------------------<br>"; } ?> <?php function Sort_Files_By_Date($dir, $sort_type, $date_format) { $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['days'] = $days; } $diff = $diff - ($days * 3600 * 24); $hours = floor($diff / 3600); if($hours) { $time_passed_array['hours'] = $hours; } $diff = $diff - (3600 * $hours); $minutes = floor($diff / 60); if($minutes) { $time_passed_array['minutes'] = $minutes; } $seconds = $diff - ($minutes * 60); $time_passed_array['seconds'] = $seconds; $array[] = array('file'=> $file, 'timestamp'=> $last_modified, 'date'=> date ($date_format, $last_modified), 'time_passed'=> $time_passed_array, 'size'=> filesize($dir.$file)); } } usort($array, create_function('$a, $b', 'return strcmp($a["timestamp"], $b["timestamp"]);')); if($sort_type == 'descending') { krsort($array); } return array($array, $sort_type); } ?>
</body> </html> |