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

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



慕沐林林
浏览 520回答 3
3回答

蝴蝶刀刀

这是Kohana的实现,您可以使用它:public static function bytes($bytes, $force_unit = NULL, $format = NULL, $si = TRUE){    // Format string    $format = ($format === NULL) ? '%01.2f %s' : (string) $format;    // IEC prefixes (binary)    if ($si == FALSE OR strpos($force_unit, 'i') !== FALSE)    {        $units = array('B', 'KiB', 'MiB', 'GiB', 'TiB', 'PiB');        $mod   = 1024;    }    // SI prefixes (decimal)    else    {        $units = array('B', 'kB', 'MB', 'GB', 'TB', 'PB');        $mod   = 1000;    }    // Determine unit to use    if (($power = array_search((string) $force_unit, $units)) === FALSE)    {        $power = ($bytes > 0) ? floor(log($bytes, $mod)) : 0;    }    return sprintf($format, $bytes / pow($mod, $power), $units[$power]);}
打开App,查看更多内容
随时随地看视频慕课网APP