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

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

递归读取

树状升级版

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

0,'file'=>0,);

$cont=readdirtree($path);
echo "
";
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 "
",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个

你可能感兴趣的:(PHP)