ホームページ >バックエンド開発 >PHPチュートリアル >バイトを人間が読める単位に正確にフォーマットするにはどうすればよいですか?

バイトを人間が読める単位に正確にフォーマットするにはどうすればよいですか?

Barbara Streisand
Barbara Streisandオリジナル
2024-11-19 02:30:03741ブラウズ

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

バイトを正確にフォーマットする

さまざまなシナリオで、バイト値をキロバイト、メガバイト、そしてギガバイト。たとえば、Web ページ上のファイル サイズを表示するには、バイトを適切な単位にフォーマットする必要があります。

解決策: フォーマット関数の使用

効果的な解決策の 1 つは、フォーマット関数を使用することです。これはバイトを入力として受け取り、フォーマットされた文字列を返します。これを実現する 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];
}

説明

この関数は 2 つのパラメータを取ります:

  • $bytes:ファイルのサイズ (バイト単位)
  • $precision: 表示する小数点以下の桁数

関数は配列 $units を使用して単位 (バイト、キロバイト、メガバイト、ギガバイト) を表します、テラバイト)。 $bytes の対数を 1024 の対数で割ることにより、適切な単位を表す電力 $pow を計算します。最大電力は、配列内の最も高い単位で制限されます。

次に、関数はバイト値を次の値で除算します。必要な単位に変換するための適切な電力。最後に、値を指定された精度に丸め、$units 配列から対応する単位を追加します。

たとえば、$bytes が 5,222,937 の場合、関数はそれを「5.01 MB」としてフォーマットします。

以上がバイトを人間が読める単位に正確にフォーマットするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。