したいこと
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乗になった時に間違える心配が減る。
また、この条件分岐はファイル一覧に組み合わせているが、ほかにも使う機会も多そうなので楽に書けて良かった。