注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

早衰男的巢

大音希声 道隐无名

 
 
 

日志

 
 

PHP: scandir()按照时间排列的方法  

2014-11-19 12:17:00|  分类: PHP |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
scandir挺好用,就是支持的参数少了点,只能根据文件名双向排。所谓稍微写了个实现按照时间(修改时间) 的排序方法。废话不多说.. 纯备忘。

/**
* 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;
}



  评论这张
 
阅读(567)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018