遞歸建立級聯目錄,遞歸刪除級聯目錄,例如:./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')?'刪了':'出錯了'; ?>