如何精确地将字节格式化为人类可读的单位?

Barbara Streisand
发布: 2024-11-19 02:30:03
原创
689 人浏览过

How to Format Bytes into Human-Readable Units with Precision?

精确格式化字节

在各种场景中,有必要将字节值格式化为人类可读的单位,例如千字节、兆字节、和千兆字节。例如,在网页上显示文件大小需要将字节格式化为适当的单位。

解决方案:使用格式化函数

一种有效的解决方案是使用格式化函数它将字节作为输入并返回格式化的字符串。下面是实现此目的的 PHP 函数示例:

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];
}
登录后复制

说明

此函数采用两个参数:

  • $bytes:文件大小(以字节为单位)
  • $ precision:要显示的小数位数

函数使用数组 $units 来表示单位(字节、千字节、兆字节、千兆字节)和 TB)。它通过将 $bytes 的对数除以 1024 的对数来计算代表适当单位的功率 $pow。最大功率上限为数组中的最高单位。

然后该函数将字节值除以适当的功率将其转换为所需的单位。最后,它将值舍入到指定的精度,并附加 $units 数组中的相应单位。

例如,如果 $bytes 为 5,222,937,该函数会将其格式化为“5.01 MB”。

以上是如何精确地将字节格式化为人类可读的单位?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板