@Caspergreen

Как доделать функцию перевода байтов в GB, TB?

есть функция
$mp = 1024;
$byte = $int;
$sign = '';
if( $int < 0 ) {
$sign = '-';
$int *= -1;
}
if( $int > $mp * $mp ) {
$byte = sprintf( "%.1f MB", $int / $mp / $mp );
} else if ( $int > $mp ) {
$byte = sprintf( "%.1f KB", $int / $mp );
} else {
$byte = $int . ' B';
}
надо добавить перевод в ГБ, ТБ помогите плииизз)
  • Вопрос задан
  • 2279 просмотров
Пригласить эксперта
Ответы на вопрос 3
сам себе когда-то сделал вот такое
function formatSize($bytes)
    {
        if ($bytes < 1024)
        {
            return $bytes.' b';
        }
        elseif ($bytes < 1048576)
        {
            return round($bytes / 1024, 2).' kb';
        }
        elseif ($bytes < 1073741824)
        {
            return round($bytes / 1048576, 2).' mb';
        }
        elseif ($bytes < 1099511627776)
        {
            return round($bytes / 1073741824, 2).' gb';
        }
        elseif ($bytes < 1125899906842624)
        {
            return round($bytes / 1099511627776, 2).' tb';
        }
        elseif ($bytes < 1152921504606846976)
        {
            return round($bytes / 1125899906842624, 2).' pb';
        }
        else
        {
            return 'impossible huge!';
        }
    }
Ответ написан
Комментировать
nalomenko
@nalomenko
Руководитель отдела разработок в студии «Lava»
function formatBytes($bytes, $precision = 2) { 
    $units = array('B', 'KB', 'MB', 'GB', 'TB'); 

    $bytes = max($bytes, 0); 
    $pow = floor(($bytes ? log($bytes) : 0) / log(1024)); 
    $pow = min($pow, count($units) - 1); 

    // Uncomment one of the following alternatives
    // $bytes /= pow(1024, $pow);
    // $bytes /= (1 << (10 * $pow)); 

    return round($bytes, $precision) . ' ' . $units[$pow]; 
}


Первоисточник — тут
Ответ написан
Комментировать
Spetros
@Spetros
IT-шник
Обычная учебная задача, нужно добавить пару строчек элементарного кода.
С этим справится даже среднестатистический неуч.
Чтобы ее решить нужно понять, что делает этот код и чем отличаются GB, TB от того, что у вас там написано.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы