PHP

Как перевести байты в килобайты, мегабайты, гигабайты на 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';  
}
Теги:
байты, килобайты, мегабайты, гигабайты
Добавлено: 10 Мая 2018 07:10:05 Добавил: Андрей Ковальчук Нравится 0
Добавить
Комментарии:
Нету комментариев для вывода...