程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> 目錄自定義函數,自定義函數

目錄自定義函數,自定義函數

編輯:關於PHP編程

目錄自定義函數,自定義函數


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 }

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved