php遍历文件夹下文件内容_PHP递归遍历指定文件夹内的文件实现方法

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

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

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

$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

$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递归遍历指定文件夹内的文件实现方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值