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 。 |