From 3b74f55a2d35459590c0a0962d020ddd472bbec1 Mon Sep 17 00:00:00 2001 From: Dominique Fournier Date: Tue, 27 Mar 2018 11:48:26 +0000 Subject: [PATCH] convert : add humanSize conversion (1440 => 1.44KB) git-svn-id: https://svn.fournier38.fr/svn/ProgSVN/trunk@4179 bf3deb0d-5f1a-0410-827f-c0cc1f45334c --- convert.php | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) 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; + } }