递归的使用[2]_打印级联目录
可以使用递归的方式打印级联目录。可以用readdir()函数读取目录,但是当打开的目录为子目录时,我们则可以再次调用函数来实现打印出级联效果。而不能直接用readdir()函数全部读取所有的目录,它只能读取一层目录。涉及到的代码如下:
1 function recdir($path){ 2 $dh=opendir($path); 3 while(($row=readdir($dh))!=false){ 4 if($row=='.'||$row=='..'){ 5 continue; 6 } 7 echo $row."<br/>"; 8 if(is_dir($path.'/'.$row)){ 9 10 recdir($path.'/'.$row); 11 } 12 } 13 echo $row; 14 } 15 16 recdir('./');
当然我们还可以略加修改,可以打印出树状图来。其代码如下:
1 function recdir($path,$lev=1){ 2 $dh=opendir($path); 3 while(($row=readdir($dh))!==false){ 4 if($row=='.'||$row=='..'){continue;} 5 echo "├".str_repeat('─',$lev).$row."<br/>"; 6 if(is_dir($path.'/'.$row)){ 7 recdir($path.'/'.$row,$lev+1); 8 } 9 10 } 11 closedir($dh); 12 } 13 recdir('./',1);