可以使用递归的方式打印级联目录。可以用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.""; 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.""; 6 if(is_dir($path.'/'.$row)){ 7 recdir($path.'/'.$row,$lev+1); 8 } 9 10 }11 closedir($dh);12 }13 recdir('./',1);