目錄自訂函數,自訂函數
PHP中並不提供查詢目錄大小、複製目錄、刪除有檔案的目錄的函數,我們需要自己編寫
這個函數只要傳遞一個url,就能遞迴查詢目錄中的檔案大小,從而統計出目錄大小
1 php 2 function dirSize($dir){ 3 $dirsize = 0; 4 $url = opendir($dir); 5 while($filename = readdir($url)){ 6 $file = $dir.'/'.$filename; 7 if(!($filename=='.' || $filename=='..')){ 8 if(is_dir($file)){ 9 $dirsize += dirSize($file);10 }else{11 $dirsize += filesize($file);12 }13 }14 }15 closedir($url);16 return $dirsize;17 }
這個函數需要傳遞兩個url,分別是舊目錄和新目錄,就能複製該目錄及檔案
1 php 2 function copyDir($dirSrc,$dirTo){ 3 if(is_file($dirTo)) 4 { 5 echo '目標不是目錄不能建立!'; 6 return; 7 } 8 if(!file_exists($dirTo)) 9 {10 mkdir($dirTo);11 }12 $dir_handle = @opendir($dirSrc);13 if($dir_handle)14 {15 while($filename = readdir($dir_handle))16 {17 if($filename!="." && $filename!="..")18 {19 $subSrcFile = $dirSrc . "\\".$filename;20 $subToFile = $dirTo . "\\".$filename;21 22 if(is_dir($subSrcFile))23 {24 copyDir($subSrcFile, $subToFile);25 }26 if(is_file($subSrcFile))27 {28 copy($subSrcFile, $subToFile);29 }30 }31 }32 closedir($dir_handle);33 }34 }
這個函數只要傳遞一個url,就能遞迴刪除目錄及子目錄的檔案,從而刪除目錄
1 php 2 function rmDirAll($url){ 3 //檢測要開啟目錄是否存在 4 if(!$dir=@opendir($url)){ 5 return false; 6 } 7 while(false !==($file=readdir($dir))){ 8 //排除目前的目錄與父級目錄 9 if($file!=="."&&$file!==".."){10 $file=$url .'/'. $file;11 //遞迴刪除目錄12 if(is_dir($file)){13 rmDirAll($file);14 }else{15 if(@unlink($file)){16 continue;17 }else{18 return false;19 }20 }21 }22 if(@rmdir($url)){23 return true;24 }else{25 return false;26 }27 }28 }
http://www.bkjia.com/PHPjc/973028.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/973028.htmlTechArticle目錄自訂函數,自訂函數 PHP中並不提供查詢目錄大小、複製目錄、刪除有檔案的目錄的函數,我們需要自己編寫 這個函數只要傳遞一...