这是一个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个