function get_filesize( $url, $unit = false, $decimals = 2 ) {
$headers = get_headers ( $url, 1 );
if ( !empty ( $headers['Content-Length'] ) )
$len = (int) $headers['Content-Length'];
else
return false;
if ( !$unit ) {
if ( $len >= pow ( 1024, 3 ) )
$unit = 'GB';
elseif ( $len >= pow ( 1024, 2 ) )
$unit = 'MB';
elseif ( $len >= 1024 )
$unit = 'KB';
else
$unit = 'B';
}
if ( $unit == 'GB' )
$len = number_format ( floor ( $len / pow ( 1024, 3 ) * 100 ) / 100, $decimals ) . $unit;
elseif ( $unit == 'MB' )
$len = number_format ( floor ( $len / pow ( 1024, 2 ) * 100 ) / 100, $decimals ) . $unit;
elseif ( $unit == 'KB' )
$len = number_format ( floor ( $len / 1024 * 100 ) / 100, $decimals ) . $unit;
elseif ( $unit == 'B' )
$len = number_format ( $len ) . $unit;
return $len;
}
echo ( $len = get_filesize( 'ファイルのURL' ) ) ? $len : '取得できませんでした。';
| 第一引数 | ファイルのURL。 |
|---|---|
| 第二引数 | 単位。 B、KB、MB、GB のいずれか。 false、null、“” あるいは省略時は一桁目が1以上になる単位を自動選択。 |
| 第三引数 | 小数点以下の桁数。省略時は2。 |
| 返り値 | 単位付きの数値。失敗した場合は false 。 |


