在PHP 中,函數disk_total_space()用於獲取指定路徑所在磁盤的總空間大小,返回值是字節(byte)數。通常我們看到的是一個非常大的數字,難以直觀理解其實際大小。因此,我們需要將字節轉換成更容易理解的單位,比如GB(千兆字節)或MB(兆字節)。
本文將詳細說明如何將disk_total_space()返回的字節值轉換成GB 或MB,並解釋常見的單位換算關係。
計算機存儲容量的基本單位是字節(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 換算。
下面是一個示例代碼,演示如何用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用於格式化輸出,保留兩位小數
有時候我們不想手動指定是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>
這個函數通過對字節數取對數,自動判斷適合的單位,輸出更友好的結果。
disk_total_space()返回的單位是字節(Bytes)
字節轉換MB,除以1024 × 1024
字節轉換GB,除以1024 × 1024 × 1024
可以使用格式化函數讓結果更易讀
掌握字節與MB、GB 的換算,有助於更直觀地理解磁盤空間大小,方便你開發時做空間顯示或判斷。