codetc - 网站开发技术 首页 代码 PHP 查看内容

使用php读取目录文件列表

2015-5-11 23:44| 发布者: CODETC| 查看: 3588| 评论: 0

网站开发中,对于后台管理系统的功能设计往往会有需要读取目录文件列表的功能,同时也要判定目录下的项目是目录还是文件;这里总结了一个返回所查询目录下的文件以及文件夹的列表数组的函数。数组中会区分文件是否为目录或者文件,以及所查询目录下的目录总数和文件总数。


代码如下:
/*
* author : www.codetc.com
* param string $path 目录路径
* return array $dirList 查询结果数组
*/

function listDir($path){
	if(!file_exists($path)||!is_dir($path)){
		return '';
	}
	$dirList=array('dirNum'=>0,'fileNum'=>0,'lists'=>'');
	$dir=opendir($path);
	$i=0;
	while($file=readdir($dir)){
		if($file!=='.'&&$file!=='..'){
			$file = $path.$file;
			$dirList['lists'][$i]['name']=$file;
			if(is_dir($file)){
				$dirList['lists'][$i]['isDir']=true;
				$dirList['dirNum']++;
			}else{
				$dirList['lists'][$i]['isDir']=false;
				$dirList['fileNum']++;
			}
			$i++;
		};
	};
	closedir($dir);
	return $dirList;
}

具体用法如下,比如需要查询目录 E:\web\ 下的文件以及目录列表,则:

echo '<pre>';
print_r(listDir('E:\web\\'));

注意:此处目录路径后一定要加"\",is_dir函数需要带上正确的路径才能正确判定是否为文件夹


说明:

在这段代码中主要使用了PHP目录函数opendir(),readdir(),closedir(),下面分别进行解释一下:

1、opendir函数用来打开所游览的具体目录,函数参数为目录名,注意,如果PHP执行文件和浏览的主目录处在同一级,则传递的参数可以仅仅只是目录名,如果不在同一级或读取多级目录时,需带上具体的目录路径或文件路径。

2、在通过opendir函数读取了主目录后,通过while循环来进一步读取主目录下的多级目录及文件,此处使用的PHP目录函数为readdir,此函数从目录中读取目录或文件名,当没有可读取的目录或文件时,返回False,注意,读取的目录包含.和..,在本实例教程中由于是一级级往下读取目录,所以当读取的目录信息为.和..时跳出本次循环,继续读取下一级目录。

3、在读取完主目录的所有子目录及文件后,通过PHP目录函数closedir来关闭目录句柄,类似于fclose函数关闭文件。

文章来源 CODETC,欢迎分享,转载请注明地址: http://www.codetc.com/article-192-1.html

最新评论

 作为游客发表评论,请输入您的昵称

返回顶部