递归创建级联目录,递归删除级联目录,例如:./a/b/c/d/e
<?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')?'删了':'出错了'; ?>