-
-
- //Statistical folder-related information
- //Number of statistical directories
- //Format output directory size unit: Bytes, KB, MB, GB
-
- function getFolderSize( $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 = getFolderSize($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;
- }
//Format output information
- 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";
- } bbs.it-home.org
- else
- {
- $size=round($size/(1024*1024*1024),1);
- return $size." GB";
- }
-
- }
-
- $path="/var/www";
- $ar= getFolderSize($path);
-
- echo "
The path you are viewing: $path";
- echo "Directory size: ".sizeFormat($ar['size'])."
echo "Number of files: ".$ar['count']." ";
- echo "Number of directories: ".$ar['dircount']."
";< ;/p>
//Output
- //print_r($ar);
- ?>
-
Copy code
Example 2, PHP function to get the folder size
-
- // Get the folder size
- 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;
- }
- // Automatic unit conversion function
- 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('directory path'));
- ?>
Copy code
|