當前位置: 首頁> 最新文章列表> 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 的換算,有助於更直觀地理解磁盤空間大小,方便你開發時做空間顯示或判斷。