PHP: scandir()按照时间排列的方法
发布时间:2015-10-15, 10:43:48 分类:PHP | 编辑 off 网址 | 辅助
正文 1197字数 1,164,734阅读
/**
* 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
(支付宝)给作者钱财以资鼓励 (微信)→
有过 2 条评论 »