当前位置:Gxlcms > PHP教程 > php读取目录文件及目录的函数

php读取目录文件及目录的函数

时间:2021-07-01 10:21:17 帮助过:5人阅读

一个返回所查询的目录下的文件以及文件夹的列表数组的函数。数组中会区分文件是否为目录或者文件,以及所查询目录下的目录总数和文件总数。

代码如下:

/*

* param string $dir 目录名称
* return array $dirList 查询结果数组
*/

function listDir($dir){
if(!file_exists($dir)||!is_dir($dir)){
return '';
}
$dirList=array('dirNum'=>0,'fileNum'=>0,'lists'=>'');
$dir=opendir($dir);
$i=0;
while($file=readdir($dir)){
if($file!=='.'&&$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;

}

具体用法如下,比如需要查询目录 D:\PHPnow-1.5.6\htdocs 下的文件以及目录列表,则:

echo '

';

print_r(listDir('D:\PHPnow-1.5.6\htdocs'));

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

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

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

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

人气教程排行