php源码之使用递归的方法获取文件夹大小(KB或兆M)

时间:2016-08-19
本文章向大家介绍php如何获取文件夹的大小,这里我们需要考虑到文件夹里面可能还存在文件夹,所以需要使用到递归的思路,本文章给大家分享一个使用递归获取文件夹大小的php函数,需要的朋友可以参考一下源代码。

本文实例讲述了PHP获取文件夹大小函数用法。分享给大家供大家参考。具体如下:

<?php
 // 获取文件夹大小
 function getDirSize($dir)
 { 
  $handle = opendir($dir);
  while (false!==($FolderOrFile = readdir($handle)))
  { 
   if($FolderOrFile != "." && $FolderOrFile != "..") 
   { 
    if(is_dir("$dir/$FolderOrFile"))
    { 
     $sizeResult += getDirSize("$dir/$FolderOrFile"); 
    }
    else
    { 
     $sizeResult += filesize("$dir/$FolderOrFile"); 
    }
   } 
  }
  closedir($handle);
  return $sizeResult;
 }
 /* http://www.manongjc.com/article/1377.html */
 // 单位自动转换函数
 function getRealSize($size)
 { 
  $kb = 1024;   // Kilobyte
  $mb = 1024 * $kb; // Megabyte
  $gb = 1024 * $mb; // Gigabyte
  $tb = 1024 * $gb; // Terabyte
  if($size < $kb)
  { 
   return $size." B";
  }
  else if($size < $mb)
  { 
   return round($size/$kb,2)." KB";
  }
  else if($size < $gb)
  { 
   return round($size/$mb,2)." MB";
  }
  else if($size < $tb)
  { 
   return round($size/$gb,2)." GB";
  }
  else
  { 
   return round($size/$tb,2)." TB";
  }
 }
 echo getRealSize(getDirSize('需要获取大小的目录'));
?>

上一页 下一页

原文地址:http://www.manongjc.com/article/1377.html