为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

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

3 回答

?
蝴蝶刀刀

TA贡献1801条经验 获得超8个赞

这是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]);

}


查看完整回答
反对 回复 2019-11-22
  • 3 回答
  • 0 关注
  • 519 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信