当前位置: 首页> 最新文章列表> disk_total_space 返回的字节值怎么转换成 GB 或 MB?单位说明详解

disk_total_space 返回的字节值怎么转换成 GB 或 MB?单位说明详解

gitbox 2025-06-10

在 PHP 中,函数 disk_total_space() 用于获取指定路径所在磁盘的总空间大小,返回值是字节(byte)数。通常我们看到的是一个非常大的数字,难以直观理解其实际大小。因此,我们需要将字节转换成更容易理解的单位,比如 GB(千兆字节)或 MB(兆字节)。

本文将详细说明如何将 disk_total_space() 返回的字节值转换成 GB 或 MB,并解释常见的单位换算关系。


1. 字节(Byte)单位说明

计算机存储容量的基本单位是字节(Byte)。常见的单位换算关系如下:

  • 1 KB (Kilobyte) = 1024 Bytes

  • 1 MB (Megabyte) = 1024 KB = 1024 × 1024 Bytes = 1,048,576 Bytes

  • 1 GB (Gigabyte) = 1024 MB = 1024 × 1024 × 1024 Bytes = 1,073,741,824 Bytes

需要注意的是,这里使用的是二进制的换算(以 1024 为基数),而非十进制的 1000。虽然市面上有些硬盘厂商会用十进制换算,但计算机系统中通常按 1024 换算。


2. 代码示例:如何转换字节到 GB 或 MB

下面是一个示例代码,演示如何用 PHP 读取磁盘总空间并将字节数转换成 GB 和 MB:

<code> <?php $path = '/'; // 你想要查询的路径,可以根据需要修改

// 获取磁盘总空间,单位为字节(byte)
$totalBytes = disk_total_space($path);

// 转换为 GB,保留两位小数
$totalGB = $totalBytes / (1024 * 1024 * 1024);
$totalGBFormatted = number_format($totalGB, 2);

// 转换为 MB,保留两位小数
$totalMB = $totalBytes / (1024 * 1024);
$totalMBFormatted = number_format($totalMB, 2);

echo "磁盘总空间:{$totalBytes} 字节<br>";
echo "约等于:{$totalGBFormatted} GB<br>";
echo "约等于:{$totalMBFormatted} MB<br>";
?>
</code>

上面代码中:

  • disk_total_space() 返回字节数

  • 除以 1024 * 1024 * 1024 得到 GB

  • 除以 1024 * 1024 得到 MB

  • number_format 用于格式化输出,保留两位小数


3. 进阶:自动转换合适的单位

有时候我们不想手动指定是 GB 还是 MB,可以写一个简单的函数,根据大小自动选择合适单位:

<code> <?php function formatBytes($bytes, $precision = 2) { $units = ['Bytes', 'KB', 'MB', 'GB', 'TB']; $bytes = max($bytes, 0); $pow = floor(($bytes ? log($bytes) : 0) / log(1024)); $pow = min($pow, count($units) - 1);
$bytes /= pow(1024, $pow);

return round($bytes, $precision) . ' ' . $units[$pow];

}

$path = '/';
$totalBytes = disk_total_space($path);
echo "磁盘总空间为:" . formatBytes($totalBytes) . "<br>";
?>
</code>

这个函数通过对字节数取对数,自动判断适合的单位,输出更友好的结果。


4. 总结

  • disk_total_space() 返回的单位是字节(Bytes)

  • 字节转换 MB,除以 1024 × 1024

  • 字节转换 GB,除以 1024 × 1024 × 1024

  • 可以使用格式化函数让结果更易读

掌握字节与 MB、GB 的换算,有助于更直观地理解磁盘空间大小,方便你开发时做空间显示或判断。