目錄自訂函數,自訂函數_PHP教程

來源:互聯網
上載者:User

目錄自訂函數,自訂函數


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中並不提供查詢目錄大小、複製目錄、刪除有檔案的目錄的函數,我們需要自己編寫 這個函數只要傳遞一...

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.