ファイルサイズが何バイトあるか確認する
ファイルサイズを調べるための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 コード例
<?php
// ファイルサイズを調べたいファイルへのパス
$path = '/images/pic.jpg';
// あらかじめファイルが存在するか調べる
if( file_exists($path) ){
// ファイルサイズを表示する
echo "ファイルサイズは、". filesize($path) ."バイトです。";
}
ファイルが存在し、ファイルサイズを取得できた場合は次のようにメッセージが出力されます。
出力例
ファイルサイズは、614041バイトです。
ファイルが存在しない場合は何も出力しません。
ファイルサイズの単位をKB(キロバイト)に変更する
ファイルサイズの基本となる単位はB(バイト)ですが、KB(キロバイト)の単位で出力したい場合は次のように調整します。
PHP コード例
<?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 コード例
<?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 コード例
<?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でのファイルサイズの取得方法と単位の調整についてでした。