您的位置:首页 > 编程语言 > PHP开发

【php】读取"文件列表"按时间倒序显示,并递归显示各层目录、!

2014-07-12 11:21 721 查看
思路:

1.读取该php所在目录的文件列表,用"修改时间、文件名"做键值对,塞入数组。对"修改时间"倒序。(貌似不能直接按时间倒序读取文件列表,此处为间接方法)

2.读取的若为文件直接输出,为目录就输出目录并递归扫描其下文件。

<?php
//遍历当前目录下所有文件的和目录,并以树装形式显示
//1.打开目录句柄,获取句柄资源
//2.读取句柄资源,并显示当前和子目录下的(目录和文件名称)
function getDirFile($path){

if(!($file_handler=opendir($path)))
return;

$fileNTimes=array();
//遍历-当前目录的"文件",排除该php文件
while(false !== ($file=readdir($file_handler))){
if($file=='.' || $file=='..' || $file=='index.php')
continue;
$fileNTimes[filemtime($path.'/'.$file)]=$file;
}
//倒序
krsort($fileNTimes);

foreach ($fileNTimes as $mtime=>$file)
{
$file_path="$path/$file";							//路径
$rel_path=str_replace(__DIR__."/", "", $file_path);	//相对路径
//若为-目录
if(is_dir($file_path)){
//根据"目录级别"缩进
if(substr_count($file_path,"/")>1){
$count=str_repeat("  ",substr_count($file_path,"/"));
echo $count.'+'.$file;
}else{
echo '+'.$file;
}
echo "<br/>";
getDirFile($file_path);
}
//若为-文件
else{
if(substr_count($file_path,"/")>1){
$count=str_repeat("  ",substr_count($file_path,"/"));
echo $count.getFile_html($rel_path,$file).getTime_html($mtime);

}else{
echo getFile_html($file,$file).getTime_html($mtime);
}
echo "<br/>";
}
}
}

function getTime_html($time){
return '<a style="font-size:10px;color:grey"> '.date('(Y-m-d H:m:s)',$time).'</a>';
}

function getFile_html($rel_path,$file){
return '<a href="'.$rel_path.'">'.$file.'</a>';
}

//-----------------------------------------

$path=__DIR__;
getDirFile($path);

?>


效果:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐