Как перевести байты в килобайты, мегабайты, гигабайты на PHP
Задача: разработать удобный перевод байтов в килобайты, мегабайты, гигабайты, используя стандартные функции php.
Способы решения представлены следующими функциями:
function format_fsize($size){
$metrics[0] = 'bytes';
$metrics[1] = 'KB';
$metrics[2] = 'MB';
$metrics[3] = 'GB';
$metrics[4] = 'TB';
$metric = 0;
while(floor($size/1024) > 0){
++$metric;
$size /= 1024;
}
$ret = round($size,1)." ".(isset($metrics[$metric])?$metrics[$metric]:'??');
return $ret;
}
function Size2Str($size)
{
$kb = 1024;
$mb = 1024 * $kb;
$gb = 1024 * $mb;
$tb = 1024 * $gb;
if ($size < $kb) {
return $size.' байт';
} else if ($size < $mb) {
return round($size / $kb, 2).' Кб';
} else if ($size < $gb) {
return round($size / $mb, 2).' Мб';
} else if ($size < $tb) {
return round($size / $gb, 2).' Гб';
} else {
return round($size / $tb, 2).' Тб';
}
}
function fileSizeInfo($fs)
{
$bytes = array('KB', 'KB', 'mb', 'gb', 'TB');
if ($fs <= 999) {
$fs = 1;
}
for ($i = 0; $fs > 999; $i++) {
$fs /= 1024;
}
return array(ceil($fs), $bytes[$i]);
}
function file_size($size)
{
$filesizename = array(" Bytes", " KB", " MB", " GB", " TB", " PB", " EB", " ZB", " YB");
return $size ? round($size/pow(1024, ($i = floor(log($size, 1024)))), 2) . $filesizename[$i] : '0 Bytes';
}
Комментарии:
Нету комментариев для вывода...