1. ホーム
  2. php

[解決済み】バイトをキロバイト、メガバイト、ギガバイトに変換するフォーマット

2022-04-10 05:40:28

質問

シナリオ:様々なファイルのサイズが、バイトとしてデータベースに保存されています。このサイズ情報をキロバイト、メガバイト、ギガバイトにフォーマットする最良の方法は何でしょうか?例えば、私はUbuntuが "5.2 MB (5445632 bytes)" として表示するMP3を持っています。これをWebページで "5.2 MB" と表示し、1メガバイト未満のファイルはKB、1ギガバイト以上のファイルはGBと表示させるにはどうしたらよいでしょうか?

解決方法は?

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]; 
} 

(から引用しています。 php.net 他にもたくさんの例がありますが、私はこの例が一番好きです :-)