diff --git a/convert.php b/convert.php index ccc24f3..40211cd 100644 --- a/convert.php +++ b/convert.php @@ -83,4 +83,29 @@ class convert } return $res; } + + /** Convert the provided integer to human readable format + * Example : 1440000000 => 1.44Mo + * @param integer $bytes The number of bytes to convert + * @param integer $decimal The number of decimal + */ + public static function humanSize ($bytes, $decimals = 2) + { + $size = array (dgettext ("domframework", 'B'), + dgettext ("domframework", 'kB'), + dgettext ("domframework", 'MB'), + dgettext ("domframework", 'GB'), + dgettext ("domframework", 'TB'), + dgettext ("domframework", 'PB'), + dgettext ("domframework", 'EB'), + dgettext ("domframework", 'ZB'), + dgettext ("domframework", 'YB')); + $factor = floor ((strlen ($bytes) - 1) / 3); + if ($factor == 0) + $val = sprintf ("%d", intval ($bytes)). @$size[$factor]; + else + $val = sprintf ("%.{$decimals}f", $bytes / pow (1024, $factor)) . + @$size[$factor]; + return $val; + } }