正文 1197字数 1,164,810阅读

/** * Util::scandir_bydate() * 增强型目录扫描,根据修改时间排序 * @param mixed $path * @param bool $desc 倒序? * @return array $filelist */ function scandir_bydate($path,$desc=false){ $filelist = scandir($path); if(!is_array($filelist)){ //404 或不是目录,中断操作,继承原方法。 return $filelist; } unset($newlist); foreach($filelist as $fname){ if($fname!="."&&$fname!=".."){ //跳过两个特殊的目录 $fct = filectime($path."/".$fname); $newlist[$fname] = $fct ; //为什么要用fct作为value 的格式,是因为时间可能会重合如果作为key就会覆写,而文件名是不会重复的 } } //排序 if($desc){ //反排 arsort($newlist); }else{ asort($newlist); } array_unshift($newlist,".","..");//让我来组成头部!! //输出排序后的新清单 unset($filelist); foreach($newlist as $fn => $ts){ //时间戳其实已经没有用了,只要按重排的顺序取出key $filelist[] = $fn; } return $filelist; }
Run code
Cut to clipboard