国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > PHP > 正文

php實現統計目錄文件大小的函數

2024-09-04 11:42:27
字體:
來源:轉載
供稿:網友

本文給大家介紹了使用php實現統計目錄文件大小的函數,其主要的思路是通過遞歸遍歷目錄中的所有文件從而計算出文件總大小的,有需要的小伙伴可以參考下。

早上剛到公司,頭告訴我,抓緊寫一個小函數,用來統計指定目錄中文件大小,我了個去,動手吧,還好有點小基礎,一會就完工了,哈哈。代碼在下面咯。

  1. <?  
  2. /**  
  3.  統計目錄文件大小的函數  
  4.  @author xfcode  
  5. */ 
  6.  function dirsize($dir)  
  7.  {  
  8.    @$dh = opendir($dir);  
  9.    $size = 0;  
  10.    while ($file = @readdir($dh))  
  11.   {  
  12.     if ($file != "." and $file != "..")  
  13.    {  
  14.      $path = $dir."/".$file;  
  15.       if (is_dir($path))  
  16.      {  
  17.        $size += dirsize($path);  
  18.       }  
  19.      elseif (is_file($path))  
  20.      {  
  21.        $size += filesize($path);  
  22.       }  
  23.     }  
  24.    }  
  25.   @closedir($dh);  
  26.   return $size;  
  27.  }  
  28. //function end  
  29.    
  30. //eg:  
  31.  $dir_path = "./my_files";  
  32.  $dir_size = dirsize($dir_path);  
  33.  $dir_size = $dir_size/1024/1024;  
  34.  echo $dir_size."MB";  
  35.  ?>  

這個函數可以遞歸遍歷目錄中的所有文件,并計算以MB為單位的文件總大小。

下面我們再來看個代碼

  1. <?php 
  2.  #循環遍歷目錄中所有的文件,并統計目錄和文件的大小 
  3.  $dirName="phpMyAdmin"
  4.  $dir=opendir($dirName); #返回一個資源類型 
  5.  while($fileName=readdir($dir)){ 
  6.  $file=$dirName."/".$fileName
  7.  if($fileName!="." && $fileName!=".."){ 
  8.   if(is_dir($file)){ 
  9.   echo "<font color='red'>".$fileName."===".date("Y-m-d H:i:s",filectime($file))."==".filetype($file)."==".toSize(dirSize($file))."</font><br/>"
  10.   } 
  11.   else
  12.   echo "<font color='green'>".$fileName."=====".date("Y-m-d H:i:s",filectime($file))."====".filetype($file)."====".toSize(filesize($file))."</font><br/>"
  13.   } 
  14.  } 
  15.  } 
  16.  closedir($dir); 
  17.    
  18.  #把文件或目錄的大小轉化為容易讀的方式 
  19.  function toSize($size){ 
  20.  $dw; #指定文件或目錄統計的單位方式 
  21.  if($size>pow(2,30)){ 
  22.   $dw="GB"
  23.   $size=round($size/pow(2,30),2); 
  24.  } 
  25.  else if($size>pow(2,20)){ 
  26.   $dw="MB"
  27.   $size=round($size/pow(2,20),2); 
  28.  } 
  29.  else if($size>pow(2,10)){ 
  30.   $dw="KB"
  31.   $size=round($size/pow(2,10),2); 
  32.  } 
  33.  else 
  34.  { 
  35.   $dw="bytes"
  36.  } 
  37.  return $size.$dw
  38.  } 
  39.  
  40.  #利用遞歸的方式統計目錄的大小 
  41.  function dirSize($dirName){ 
  42.  $dirsize=0; 
  43.  $dir=opendir($dirName); 
  44.  while($fileName=readdir($dir)){ 
  45.   $file=$dirName."/".$fileName
  46.   if($fileName!="." && $fileName!=".."){   //一定要進行判斷,否則會出現錯誤的 
  47.   if(is_dir($file)){ 
  48.    $dirsize+=dirSize($file); 
  49.   } 
  50.   else
  51.    $dirsize+=filesize($file); 
  52.   } 
  53.   } 
  54.  } 
  55.  closedir($dir); 
  56.  return $dirsize
  57.  } 
  58. ?>

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 泸溪县| 凤山县| 奉新县| 铜陵市| 上蔡县| 囊谦县| 塘沽区| 八宿县| 乡宁县| 宜川县| 尚志市| 贵溪市| 公安县| 桓仁| 屏南县| 方城县| 靖安县| 天水市| 拜城县| 茂名市| 达日县| 包头市| 壶关县| 藁城市| 太保市| 乡宁县| 屏边| 黔东| 石河子市| 辽阳县| 玉田县| 新巴尔虎左旗| 韶关市| 垣曲县| 张家界市| 石泉县| 会理县| 宕昌县| 仪陇县| 沈丘县| 浑源县|