convert : add humanSize conversion (1440 => 1.44KB)

git-svn-id: https://svn.fournier38.fr/svn/ProgSVN/trunk@4179 bf3deb0d-5f1a-0410-827f-c0cc1f45334c
This commit is contained in:
2018-03-27 11:48:26 +00:00
parent 83353fc53c
commit 3b74f55a2d

View File

@@ -83,4 +83,29 @@ class convert
} }
return $res; 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;
}
} }