【PHP】ファイルサイズを計算し適切な単位をつけて返す関数。

メモ。

function getFileSizeUnit($fsize) {
	$cnt = 0;
	$buf = 0;
	$unit = array('B', 'KB', 'MB', 'GB', 'TB');
	while(1) {
		if($cnt > count($unit) - 1) {
			$cnt = 9999;
			break;
		}
		if(!isset($s)) $s = $fsize;
		$sbuf = 1;
		$sbuf = floor($s / 1024);
		if($sbuf < 1){
			$fs = $s + round(($fsize - ($s * pow(1024, $cnt))) / pow(1024, $cnt), 1);
			$fs .= $unit[$cnt];
			break;
		}else{
			$s = $sbuf;
		}
		$cnt ++;
	}
	return $fs;
}

ファイルサイズ(数値)を渡すと単位付きで返却してくれる。