一尘不染

将字节格式化为千字节,兆字节,千兆字节

php

方案:各种文件的大小以字节为单位存储在数据库中。将大小信息格式化为千字节,兆字节和千兆字节的最佳方法是什么?例如,我有一个MP3,Ubuntu显示为“
5.2 MB(5445632字节)”。如何在网页上将其显示为“ 5.2 MB”,并且文件大小小于1 MB的文件显示为KB,文件大小大于1
GB的文件显示为GB?


阅读 384

收藏
2020-05-26

共1个答案

一尘不染

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]; 
}

(取自php.net,那里还有许多其他示例,但我最喜欢这个示例:-)

2020-05-26