递归建立级联目录,递归删除级联目录,例如:./a/b/c/d/ephp
<?php //递归建立目录 function mk_dir($path){ //判断目录是否存在 if(is_dir($path)){ return true; } //若是父目录存在,则直接建立 if(is_dir(dirname($path))){ mkdir($path); return true; } //若是父目录不存在,则递归 mk_dir(dirname($path)); //父目录已存在,则返回建立该子目录 return mkdir($path); } echo mk_dir('./a/b/f/d/sa/as')?'ok':'fail'; //第二种方式:难理解 function printpath($path){ if(is_dir($path)){ return true; } // 父目录存在或你帮我建立父目录,再建立子目录 return is_dir(dirname($path))||printpath(dirname($path))?mkdir($path):false; } echo printpath('./b/as/ds')?'OK':'FAIL'; //函数递归建立目录mkdir(目录,权限默认0777,是否递归建立); mkdir('./aa/bb/cc',0777,true); //递归删除目录 function deldir($path){ //若是不是目录,直接返回 if(!is_dir($path)){ return null; } //打开目录 $dh=opendir($path); while(($row=readdir($dh))!==false){ if($row=='.'||$row=='..'){ continue; } //判断是不是普通文件 if(!is_dir($path.'/'.$row)){ unlink($path.'/'.$row); }else{ deldir($path.'/'.$row); } } closedir($dh); rmdir($path); return true; } echo deldir('./aa')?'删了':'出错了'; ?>