计算网站根目录下面所有文件的大小

来源:互联网 发布:tf数据恢复软件 编辑:程序博客网 时间:2024/05/06 01:44


<?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;
    }

    // 单位自动转换函数
    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(dirname($_SERVER['SCRIPT_FILENAME'])));


?>

---------------------------------------------------------------------------------------------------

方法二:

function dirsize($dir)
{
 
$dh = opendir($dir);
 
$size = 0;
 
while ($file = @readdir($dh))
  {
   
if ($file != "." and $file != "..")
    {
     
$path = $dir."/".$file;
     
if (is_dir($path))
      {
       
$size += dirsize($path);
      }
elseif (is_file($path)) {
       
$size += filesize($path);
      }
    }
  }
 
closedir($dh);
 
return $size;
}