PHP递归遍历指定文件夹内的文件实现方法

发布时间:2022-04-30 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了PHP递归遍历指定文件夹内的文件实现方法脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

今天早上在地铁上看了关于文件文件夹的一章,正好最近刚搞懂linux的文件系统,觉得文件属性的访问跟Shell命令很像,所以想晚上来实践一下。

发现PHP文件函数好像没有提供遍历文件夹下的所有文件包括子目录中的文件),于是,就想自己实现一个

在写的时候发现一些操作文件夹的函数并不是自己想的那样。比如,dirname()根据提供的完整文件路径来取得文件所在的文件夹的路径,但如果你传入的是文件夹,它取的就是它的父文件夹。这点要明白。basename()也是同样的道理,传入文件夹路径取得就是文件夹的名字。这两个函数返回的结果结尾都不加'/'

<PRe class="brush:PHp;"> <>PHP $dirPath='/home/WWW/test';//目录,结尾不加'/‘

//执行遍历
recursion_readdir($dirPath);

/*
@summary 重复times次字符char
@param $char 需要重复的字符
@param $times 重复次数
@return 返回重复字符组成的字符串
/
function forChar($char='-',$times=0){
$result='';
for($i=0;$i<$times;$i++){
$result.=$char;
}
return $result;
}

/*
@summary 递归读取目录
@param $dirPath 目录
@param $Deep=0 深度,用于缩进,无需手动设置
@return 无
/
function recursion_readdir($dirPath,$Deep=0){
$resDir=opendir($dirPath);
while($basename=readdir($resDir)){
//当前文件路径
$path=$dirPath.'/'.$basename;
if(is_dir($path) AND $basename!='.' AND $basename!='..'){
//是目录,打印目录名,继续迭代
echo forChar('-',$Deep).$basename.'/
';
$Deep++;//深度+1
recursion_readdir($path,$Deep);
}else if(basename($path)!='.' AND basename($path)!='..'){
//不是文件夹,打印文件
echo forChar('-',$Deep).basename($path).'
';
}

}
closedir($resDir);
}

脚本宝典总结

以上是脚本宝典为你收集整理的PHP递归遍历指定文件夹内的文件实现方法全部内容,希望文章能够帮你解决PHP递归遍历指定文件夹内的文件实现方法所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。