Функция оформления формата вывода объёма памяти

от 2018 - 08 - 31

Задача: Получить объем некого файла в байтах и потом отформатировать вывод (красиво вывести это число) что бы не ломать глаза и мозг, пытаясь понять, сколько же это будет в мегабайтах или гигабайтах. Предложенное решение может подойти не только для памяти, туда можно вписать объем в литрах например, расстояния при желании, что угодно в общем.

Не помню где нашел. Вы только вдумайтесь, какое простое и элегантное решение:

$size = filesize($file);

function formatFileSize($size) {
    $a = array("B", "KB", "MB", "GB", "TB", "PB");
    $pos = 0;
    while ($size >= 1024) {
        $size /= 1024;
        $pos++;
    }
    return round($size,2)." ".$a[$pos];
}

$strFormatedSize =  formatFileSize($size);