| 代碼如下 |
複製代碼 |
<?php class listdir{ var $depth; var $dirname; var $list; var $tostring; function listdir($dir){ $this->dirname=$dir; $this->depth=0; $this->tostring=”"; } //把結果儲存進多維陣列 function getlist($dir=”"){ if($dir==”")$dir=$this->dirname; $d=@dir($dir); while(false!==($item=$d->read())) { if($item!=”.”&&$item!=”..”) { $path=$dir.”/”.$item; if(is_dir($path)){ $this->depth+=1; $this->getlist($path); }else{ $this->list[$this->depth][]=$item; } } } $this->list[$this->depth]['directory']=$dir; $this->depth-=1; $d->close(); return $this->list; } //字元竄化結果 function tostring($dir=”"){ if($dir==”")$dir=$this->dirname; $d=@dir($dir); $this->tostring.=”<UL>n”; $this->tostring.=”Directory:”.$dir.”n”; while(false!==($item=$d->read())) { if($item!=”.”&&$item!=”..”) { $path=$dir.”/”.$item; if(is_dir($path)){ $this->depth+=1; $this->tostring($path); }else{ $this->tostring.=”<LI>”.$item.”</LI>n”; } } } $this->depth-=1; $d->close(); $this->tostring.=”</UL>n”; return $this->tostring; } } $wapdir=”jquery”; $d=new listdir($wapdir); echo $d->tostring(); ?> |
遞迴建立多級目錄
1.先判斷最底層目錄div/css/layout是否存在;2.判斷div/css/layout的上層目錄div/css是否存在,不存在則以div/css作為參數遞迴進行
下面是程式碼:
| 代碼如下 |
複製代碼 |
function mkdirs($dir) { if(!is_dir($dir)) { if(!mkdirs(dirname($dir))){ return false; } if(!mkdir($dir,0777)){ return false; } } return true; } mkdirs('div/css/layout'); 同樣的思路,php用rmdir和unlink遞迴刪除多級目錄的代碼:
function rmdirs($dir) { $d = dir($dir); while (false !== ($child = $d->read())){ if($child != '.' && $child != '..'){ if(is_dir($dir.'/'.$child)) rmdirs($dir.'/'.$child); else unlink($dir.'/'.$child); } } $d->close(); rmdir($dir); } |