Home  >  Article  >  Backend Development  >  PHP code to calculate specified folder information (number of folders, number of files, folder size)

PHP code to calculate specified folder information (number of folders, number of files, folder size)

WBOY
WBOYOriginal
2016-07-25 08:57:161002browse
This article introduces a piece of code that uses PHP to calculate the information of a specified folder. It can count the number of folders, the number of files, the size of the folder, etc. Friends in need can refer to it.

The following code is implemented: Calculate the size of the folder, including subfolders, and format the output folder size, number of files, and number of subfolders.

As follows:

<?
//代码也可以用于统计目录数
//格式化输出目录大小 单位:Bytes,KB,MB,GB
//by bbs.it-home.org
function getDirectorySize($path)
{
  $totalsize = 0;
  $totalcount = 0;
  $dircount = 0;
  if ($handle = opendir ($path))
  {
    while (false !== ($file = readdir($handle)))
    {
      $nextpath = $path . '/' . $file;
      if ($file != '.' && $file != '..' && !is_link ($nextpath))
      {
        if (is_dir ($nextpath))
        {
          $dircount++;
          $result = getDirectorySize($nextpath);
          $totalsize += $result['size'];
          $totalcount += $result['count'];
          $dircount += $result['dircount'];
        }
        elseif (is_file ($nextpath))
        {
          $totalsize += filesize ($nextpath);
          $totalcount++;
        }
      }
    }
  }
  closedir ($handle);
  $total['size'] = $totalsize;
  $total['count'] = $totalcount;
  $total['dircount'] = $dircount;
  return $total;
}

//格式化文件大小信息
function sizeFormat($size)
{
    $sizeStr='';
    if($size<1024)
    {
        return $size." bytes";
    }
    else if($size<(1024*1024))
    {
        $size=round($size/1024,1);
        return $size." KB";
    }
    else if($size<(1024*1024*1024))
    {
        $size=round($size/(1024*1024),1);
        return $size." MB";
    }
    else
    {
        $size=round($size/(1024*1024*1024),1);
        return $size." GB";
    }
 
}

//调用示例
$path="/var/www/jbxue";
$ar=getDirectorySize($path);
 
echo "<h4>路径 : $path</h4>";
echo "目录大小 : ".sizeFormat($ar['size'])."<br>";
echo "文件数 : ".$ar['count']."<br>";
echo "目录术 : ".$ar['dircount']."<br>";
 
//print_r($ar); 打印出数组表示的内容
?>


Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn