PHP 字节文件转换单位 (Byte, KB, MB, GB, TB)

单位换算

/**
 * @param $byteFile 文件字节大小
 * @param string $unit 9216字节转为 9.000 KB,可选择 [KB, MB, GB, TB]
 * @param int $float 9.000 默认近似值3位
 * @return string 9.000 KB
 * 默认转换为可能性最大的单位 9216 = 9.000 KB
 */
function file_convert_unit($byteFile, $unit = 'TB', $float = 3)
{
    // 顺序: 从小到大添加单位,即可换算 [ 'GB', 'TB', '*****']
    $units = ['Byte', 'KB', 'MB', 'GB', 'TB'];
    list ($p, $unit) = [0, ucfirst($unit)];

    while ($byteFile > 1024 && $p < (count($units) - 2)) {
        if (hash_equals($units[$p], $unit) || hash_equals($unit, 'Byte')) {
            break;
        }

        $p++;
        $byteFile /= 1024;
    }

    return sprintf("%0.{$float}f %s", $byteFile, $units[$p]);
}

// 文件字节大小
$byteFile = 5745669164;

// 9216 Bytes =  9.000 KB
print("$byteFile Byte = " . file_convert_unit($byteFile, 'GB', 2));



运行结果:
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值