to give a user the size of his account (or the admin the size of the users folder)
in a more human readable format, you can use this PHP function.

it will scan the directory recursively and return the value in kilobytes, megabytes
so its easier to read.

human readable size” makes use of the built-in PHP functions is_dir( ), opendir( ), readdir( ), is_link( ), is_file( ), filesize( ), closedir( ) and round( ).

01 <?php
02 
03 // get filesize recursively
04 function dirsize($directory) 
05 {
06     if (!is_dir($directory)) return -1;
07     $size = 0;
08     if ($DIR = opendir($directory)) 
09     {
10         while (($dirfile = readdir($DIR)) !== false) 
11         {
12             if (is_link($directory . '/' . $dirfile) || $dirfile == '.' || $dirfile == '..') 
13                 continue;
14             if (is_file($directory . '/' . $dirfile)) 
15                 $size += filesize($directory . '/' . $dirfile);
16             else if (is_dir($directory . '/' . $dirfile)) 
17             {
18                 $dirSize = dirsize($directory . '/' . $dirfile); 
19                 if ($dirSize >= 0) $size += $dirSize; 
20                 else return -1;
21             }
22         }
23         closedir($DIR);
24     }
25     return $size;
26 }
27  
28 // format size to human readable values
29 function format_size($rawSize) 
30 {
31     if ($rawSize / 1048576 > 1) 
32         return round($rawSize/1048576, 1) . 'MB'; 
33     else if ($rawSize / 1024 > 1) 
34         return round($rawSize/1024, 1) . 'KB'; 
35     else 
36         return round($rawSize, 1) . 'bytes';
37 }
38  
39 // specify the folder to scan
40 $dir = '.';
41 $size = dirsize($dir);
42 if ($size < 0)
43 {
44     echo '<p>ERROR - bad path ('.$dir.')</p>'; 
45 }else{
46     echo '<p>the &quot;'.$dir.'&quot; folder is '.format_size($size).'</p>';
47 }
48  
49 ?>