したいこと
KB/MB/GBで表示分ける
ソースコード
$filesize = filesize("/hogehoge.txt");
if ($filesize <= (1024**2)){// KB
$filesize = $filesize/1024;
$filesize = number_format($filesize,2);
$filesize .= 'KB';
}elseif($filesize <= (1024**3)){ // MB
$filesize = $filesize/(1024**2);
$filesize = number_format($filesize,2);
$filesize .= 'MB';
}elseif($filesize <= (1024**4)){ //GB
$filesize = $filesize/(1024**3);
$filesize = number_format($filesize,2);
$filesize .= 'GB';
}else{ //Others
$filesize = $filesize/(1024**4);
$filesize = number_format($filesize,2);
$filesize .= 'TB';
}
やってること
-
filesize
でファイルサイズを取得し、$filesize
に格納(このときはByteで取得される) -
$filesize
を1024のn乗(n>=2)と比較していく - n乗より小さければn-1乗の単位を与えるような条件分岐(このときに小数点以下2桁で丸める)
感想
PHPで累乗を**
で書けることを知ったが、これがめっちゃ楽。
//今まで
$a * $a
//これから
$a ** 2
累乗が5乗とか10乗になった時に間違える心配が減る。
また、この条件分岐はファイル一覧に組み合わせているが、ほかにも使う機会も多そうなので楽に書けて良かった。