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';  
    }
Добавлено: 19 Августа 2013 09:28:32 Добавил: Андрей Ковальчук Нравится 0
Добавить
Комментарии:
Нету комментариев для вывода...