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

思路:

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);

?>

效果:

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

时间: 2024-10-26 12:54:19

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

使用python获取51CTO博客列表按时间倒序排序

之前看到了这道shell面试题:获取51CTO博客列表按时间倒序排序http://oldboy.blog.51cto.com/2561410/1860985 由于学了一段时间的python,试想着能否使用python来解题 思路:通过requests模块获取网页源码,通过split()函数获取总页数,拼接字符串获取所有博客地址的url.同样,通过requests获取所有页面的源码并通过正则匹配,获取关键信息,从而拼接出html页面. #coding:utf-8 import requests i

企业shell面试题:获取51CTO博客列表按时间倒序排序

企业shell面试题:获取51CTO博客列表倒序排序考试题 老男孩教育培训机构需求:需求入下: 请把http://oldboy.blog.51cto.com 地址中的所有博文,按照时间倒序列表如下: 2013-09-13 运维就是一场没有硝烟的战争 http://oldboy.blog.51cto.com/2561410/1296694 2016-04-17 运维人员写项目方案及推进项目的基本流程思路 http://oldboy.blog.51cto.com/2561410/1764820 附加

C# 读取文件的修改时间、访问时间、创建时间

C# 获取文件的各个时间如下: 表2<ccid_nobr> 属性 功能和用途 Attributes 返回和文件相关的属性值,运用了FileAttributes枚举类型值 CreationTime 返回文件的创建时间 Exists 检查文件是否存在于给定的目录中 Extension 返回文件的扩展名 LastAccessTime 返回文件的上次访问时间 FullName 返回文件的绝对路径 LastWriteTime 返回文件的上次写操作时间 Name 返回给定文件的文件名 Delete() 删

C#文件和文件文件夹按时间、名称排序-顺序与倒序

对于文件和文件夹有多种排序方式,常用的就是按创建或修改时间.按文件名排序.在 C# 中,按时间和文件名排序都十分简单,用数组提供的排序方法 Array.Sort() 一行代码就可以搞定,当然也可以用常用的排序方法,如快速排序.冒泡排序等. 文件排序的方法也适用于文件夹,只是传递的变量不同.为了便于使用,将分别列出C#文件排序和文件夹排序四种常用方法,分别为:按名称顺序与倒序排序.按时间顺序与倒序. 一.C#文件排序 1.按名称顺序排列 /// <summary> /// C#按文件名排序(顺序

js创建、写入、读取文件(转)

下面是对此知识的系统介绍(转自互联网): Javascript 是网页制作中离不开的脚本语言,依靠它,一个网页的内容才生动活泼.富有朝气.但也许你还没有发现并应用它的一些更高级的功能吧?比如,对文件和文件夹进 行读.写和删除,就象在VB.VC等高级语言中经常做的工作一样.怎么样,你是否需要了解这方面的知识?那就请跟我来,本文将详细描述如何使用 Javascript语言进行文件操作. 一.功能实现核心:FileSystemObject 对象 其实,要在Javascript中实现文件操作功能,主要就

7 RandomAccessFile读取文件内容保存--简单例子(需要验证)

1 import org.slf4j.Logger; 2 import org.slf4j.LoggerFactory; 3 4 import java.io.*; 5 6 /** 7 * 读取动态产生的文件内容 8 */ 9 public class RandomAccessRead { 10 public static Logger logger= LoggerFactory.getLogger(RandomAccessRead.class); 11 12 //文件默认读取位置为从开始读取

vbs读取文件内的信息将非有效数据移动到指定路径

vbs读取文件内的信息将非有效数据移动到指定路径 之前我们介绍了,通过读取文件内的信息将相同的数据拷贝到指定目录,执行后我们可以利用有效的信息,但是时间长的话服务器上的可用空间也会越来越多,所以再次就想通过vbs脚本来判断数据是否有用,来提高服务器的可用空间. 思路是这样的,通过从domino目录下导出有效的数据,然后通过本地的数据盘进行比对,将无效的数据库移动到其他盘操作,如果在不影响数据完整性的情况下在做删除,那如何操作呢,首先是定义一个xlsx文件(1.xlss),文件可以任意命名,但是需

angular调用WCF服务,读取文件夹下图片显示列表,下载另存为图片

读取文件夹下的文件 public string ReadImagesPaths() { string result = string.Empty; try { string path = System.IO.Directory.GetCurrentDirectory(); DirectoryInfo files = new DirectoryInfo(path+@"\Images"); FileInfo[] fileinfo = files.GetFiles(); foreach (F

SharePoint2010沙盒解决方案基础开发——开发webpart读取绑定列表数据,并以一定的格式显示(加css样式)

SharePoint2010沙盒解决方案基础开发——开发webpart读取绑定列表数据,并以一定的格式显示(加css样式) 分类: SharePoint2011-12-22 15:13 1974人阅读 评论(2) 收藏 举报 sharepointcss2010classbordernull SharePoint2010沙盒解决方案基础开发——开发webpart读取绑定列表数据,并以一定的格式显示(加css样式) 注:此实例无需添加数据控件,避免了一些繁琐的代码 实现效果如下: 读取数据和图片,并