ファイルサイズの単位
ファイルサイズに単位を付与するモジュール
PHP
/**
*
* ファイルサイズの単位
*
* @param float $file_size
* @return string
*/
function getFiseSize($file_size)
{
// 単位(B, KB, MB, GB, TB, PB, EB, ZB, YB)
$unit = array('byte', 'KB', 'MB', 'GB', 'TB');
$unit_count = count($unit);
for ($i = 0; $i < $unit_count; $i++) {
if ($file_size < 1024 || $i == $unit_count - 1) {
if ($i == 0) {
$str = number_format($file_size) . ' ' . $unit[ $i ];
} else {
$str = number_format($file_size, 2, '.', '' ) . ' ' . $unit[ $i ];
}
break;
}
$file_size = $file_size / 1024;
}
return $str;
}
サンプル
単位付きサイズをバイトに戻す場合。
PHP
/**
*
* サイズ単位をバイトに戻す
*
* @param str $file_size
* @return string
*/
function getByteSize($file_size)
{
// 単位
$unit = array('byte', 'KB', 'MB', 'GB', 'TB');
$unit_count = count($unit);
for ($i = 0; $i < $unit_count; $i++) {
if (mb_strpos($file_size, $unit[$i]) !== FALSE) {
$str = number_format(trim(trim($file_size), $unit[$i]) * pow(1024, $i)) . ' byte';
break;
}
}
return $str;
}
1.01 GB ⇔ 1,084,479,242 byte
191 MB ⇔ 200,278,016 byte
50.5 MB ⇔ 52,953,088 byte
9.35 MB ⇔ 9,804,186 byte
893 KB ⇔ 914,432 byte