How to format bytes to kilobytes, megabytes, gigabytes in PHP

This is the best function I found on StackOverflow:

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
    // If 1 kilobytes = 1024 bytes
    // $bytes /= pow(1024, $pow);
    // If 1 kilobytes = 1000 bytes
    // $bytes /= (1 < < (10 * $pow)); 

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