热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

PHP中用于打开和读取目录并列出其中文件的函数详解

在PHP中,为了更高效地打开和读取目录并列出其中的文件,可以使用一个自定义函数来返回查询目录下的文件和文件夹列表。该函数会将结果以数组形式返回,并明确区分每个条目是文件还是目录,从而提供更友好和实用的输出。此外,该函数还可以进一步扩展,支持递归查询子目录,以便更全面地获取目录结构信息。

返回结果更友好更实用的方法请参考:

自己总结的一个返回所查询的目录下的文件以及文件夹的列表数组的函数。数组中会区分文件是否为目录或者文件,以及所查询目录下的目录总数和文件总数。废话不多说,代码如下:

/*

* author : www.phpernote.com

* 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函数关闭文件。



推荐阅读
author-avatar
xiao1027_333
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有