LoginSignup
1
2

More than 5 years have passed since last update.

PHPでファイルサイズを表示するときの条件分岐

Last updated at Posted at 2019-03-06

したいこと

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

やってること

  1. filesizeでファイルサイズを取得し、$filesizeに格納(このときはByteで取得される)
  2. $filesizeを1024のn乗(n>=2)と比較していく
  3. n乗より小さければn-1乗の単位を与えるような条件分岐(このときに小数点以下2桁で丸める)

感想

PHPで累乗を**で書けることを知ったが、これがめっちゃ楽。

//今まで
$a * $a

//これから
$a ** 2

累乗が5乗とか10乗になった時に間違える心配が減る。

また、この条件分岐はファイル一覧に組み合わせているが、ほかにも使う機会も多そうなので楽に書けて良かった。

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2