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。
第二引数 単位。 BKBMBGB のいずれか。
falsenull"" あるいは省略時は一桁目が1以上になる単位を自動選択。
第三引数 小数点以下の桁数。省略時は2。
返り値 単位付きの数値。失敗した場合は false