PHP关于目录树状展示的小练习---递归知识点

这是一个PHP关于目录操作的小练习---树状展示

递归读取

树状升级版

加入统计目录和文件的总数量

<?php
$path = "../shop2018";
//$k=array('dir'=>0,'file'=>0,);

$cont=readdirtree($path);
echo "<pre>";
var_dump($cont);

function readdirtree($path,$deep=0,&$k=array('dir'=>0,'file'=>0)){

	//准备统计文件和目录总数
	//$k=array('dir'=>0,'file'=>0,);
	//打开目录
	$dir_handle = opendir($path);
	//循环读取  false!== 排除文件名为 0 时造成的提前结束
	while(false !== $file = readdir($dir_handle)){
		//排除隐含目录
		if ( $file == '.' || $file == '..' ) continue;
		//输出
		echo "<br>",str_repeat(" ",$deep*4),$file;
		//判断是否是目录
		if(is_dir($path.'/'.$file)){
			//是目录
			if(isset($k['dir']))$k['dir']++;
			$fun_n = __FUNCTION__;
			//别忘记传进3个参数
			$fun_n($path.'/'.$file,$deep+1,$k);
		}else{
			//是文件
			//if(isset($k['file'])){echo " ".$k['file']++;}
			if(isset($k['file']))$k['file']++;
		}
	}
	//关闭目录
	closedir($dir_handle);
	return $k;
}
-------------
结果
--------------
application
    back
    config
        application.config.php
    front
    test
        Controller
            adminController.class.php
...
            2018051f46734f42d71722e664a3f28774396f.jpg
            2018052ae96d4767ce16ba997af813a86576cc.jpg
array(2) {
  ["dir"]=>
  int(22)
  ["file"]=>
  int(122)
}
目录22个,文件122个

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值