如何精確地將位元組格式化為人類可讀的單位?

Barbara Streisand
發布: 2024-11-19 02:30:03
原創
675 人瀏覽過

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:要保留的小數位數display

此函數使用陣列$units 來表示單位(位元組、千字節、兆位元組、千兆位元組和太字節)。它透過將 $bytes 的對數除以 1024 的對數來計算代表適當單位的功率 $pow。最大功率上限為數組中的最高單位。

然後函數將位元組值除以適當的功率將其轉換為所需的單位。最後,它將值舍入到指定的精度,並附加 $units 數組中的相應單位。

例如,如果 $bytes 為 5,222,937,則函數會將其格式化為「5.01 MB」。

以上是如何精確地將位元組格式化為人類可讀的單位?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板