レシピ
ファイル / ディレクトリ
ファイルサイズを取得する
filesize関数
を使ってファイルサイズ(容量)を取得し、ファイルが何バイトあるかを調べる方法について解説します。併せて、
KB
(キロバイト)、
MB
(メガバイト)、
GB
(ギガバイト)で出力する設定方法も解説していきます。
この記事のポイント
ファイルサイズ(容量)が何バイトあるかを確認する
バイトの単位を
KB
(キロバイト)、
MB
(メガバイト)、
GB
(ギガバイト)に調整して出力する
ファイルサイズを調べるための
filesize関数
を使用して、指定したファイルが何バイトあるかを確認することができます。
PHP コード例
filesize("images/test.jpg");
バイト数を整数で返します。
もしファイルが存在しなかったり、アクセス権が無いなどでファイルサイズを取得できない場合は論理値で「
false
」を返し、次のようなWarningエラーが表示されます。
エラーの表示例
Warning: filesize(): stat failed for ../images/test.jpg in /test/index.php on line 1
ファイルが存在しない場合は上記のようにファイルサイズを取得できないため、
file_exists関数
であらかじめファイルの存在を確認してから
filesize関数
を使うことが多いです。
PHP コード例
$path = '/images/pic.jpg';
if( file_exists($path) ){
echo "ファイルサイズは、".
filesize($path)
."バイトです。";
ファイルが存在し、ファイルサイズを取得できた場合は次のようにメッセージが出力されます。
ファイルサイズは、614041バイトです。
ファイルが存在しない場合は何も出力しません。
ファイルサイズの単位をKB(キロバイト)に変更する
ファイルサイズの基本となる単位は
B
(バイト)ですが、
KB
(キロバイト)の単位で出力したい場合は次のように調整します。
PHP コード例
$path = '/images/pic.jpg';
$filesize = null;
if( file_exists($path) ){
$filesize = filesize($path);
if( 1000 <= $filesize ) {
echo "ファイルサイズは".($filesize / 1000)."KBです。";
} else {
echo "ファイルサイズは、{$filesize}バイトです。";
上記のコードは
1KB
を
1000B
として計算しているため、計算式は「
$filesize / 1000
」としています。
取得したファイルサイズが
1000バイト
以上ある場合のみ
KB
へ変換し、
1KB
(
1000バイト
)未満だった場合は標準のバイトで表示します。
ファイルサイズは39.939KBです。
もし
1KB
を
1024B
で計算するときは、
1000
を
1024
に置き換えて実行します。
ファイルサイズの単位をMB(メガバイト)に変更する
取得するファイルサイズの単位を
MB
(メガバイト)にします。
1MB
は
1000B
、そして
1MB
は
1000KB
なので、バイトからメガバイトの値を取得する時は「
1000 * 1000
」で計算します。
PHP コード例
$path = '/images/pic.jpg';
$filesize = null;
$kilobyte = 1000;
$megabyte = 1000 * $kilobyte;
if( file_exists($path) ){
$filesize = filesize($path);
if( $megabyte <= $filesize ) {
echo "ファイルサイズは".($filesize / $megabyte)."MBです。";
} else if( $kilobyte <= $filesize ) {
echo "ファイルサイズは".($filesize / $kilobyte)."KBです。";
} else {
echo "ファイルサイズは、{$filesize}バイトです。";
ファイルサイズが
1,000,000バイト
以上ある場合のみ
MB
へ変換し、
1KB
未満だったときは
KB
で表示し、
1KB
(
1000バイト
)未満だったときは標準のバイトで表示します。
ファイルサイズは13.424042MBです。
ファイルサイズの単位をGB(ギガバイト)に変更する
KB
や
MB
と同じ容量で、単位を
GB
(ギガバイト)に変更します。
1GB
は
1000MB
なので、単位で出力したい場合は次のように調整します。
PHP コード例
$path = '/images/pic.jpg';
$filesize = null;
$kilobyte = 1000;
$megabyte = 1000 * $kilobyte;
$gigabyte = 1000 * $megabyte;
if( file_exists($path) ){
$filesize = filesize($path);
echo "ファイルサイズは".($filesize / $gigabyte)."GBです。";
上記のコードはファイルサイズに関わらず、一律でGB単位で表示するようにしています。
ファイルサイズは0.013424042GBです。
以上、PHPでのファイルサイズの取得方法と単位の調整についてでした。
こちらの記事は役に立ちましたか?
ありがとうございます。
もしよろしければ、あわせてフィードバックや要望などをご入力ください。
コメントありがとうございます!
運営の参考にさせていただきます。