Расставляй правильно приоритеты и не отвлекайся на мелочи

Переводим байты в человекочитаемый вид

Поводом для статьи послужила моя забывчивость, когда мне очень понадобилась давно написанная функция и я все никак не мог ее найти среди множества сайтов. Конечно я ее нашел, но времени ушло немало, для такой скромной функции, а посему я решил постить в этот блог свои подручные функции написанные на PHP, что-бы было одно место, где искать.

Функция переводит числовые значения в байтах в удобочитаемый вид. Вот примеры вывода:

bytes2readable(1000); // 0.98 КБ
bytes2readable(10000); // 9.77 КБ
bytes2readable(123456789); // 117.74 МБ
bytes2readable(109951162776); // 102.4 ГБ
bytes2readable(9000511627776); // 8.19 ТБ
bytes2readable(5000511627776954); // 4.44 ПБ

<?php
function bytes2readable($v$divisor 1024$l 0) {
    
$label = array(" КБ"" МБ"" ГБ"" ТБ"" ПБ");
    
$precision 2;
    
    
$val $v $divisor;
    if (
floor($val) >= $divisor) {
        
$l++;
        
$val bytes2readable(floor($val), $divisor, &$l);
    }
    return 
round($val$precision).$label[$l]; 
}
?>

здесь:
$divisor - делитель (количество байт в Кбайте и т.д., по умолчанию 1024)
$label - массив названий градаций Ваших пороговых значений
$precision - точность округления после запятой

4 комментария на статью:
Ответить
Обязательные поля помечены *