[PR]テレビ番組表
今夜の番組チェック

iswebでCGI:ブラウザの対応言語を調べる

環境変数 HTTP_ACCEPT_LANGUAGE を見て、ブラウザが対応している言語を調べます。
$maxlang には、q の値がもっとも高かった言語コードが入ります。
これを使って、$cgi->redirect("$maxlang/index.html"); のようなことができます。

動作例

ここを押すと、実行結果がわかります。↓
/cgi-bin/lang.cgi

ソースコード

#!/usr/local/bin/perl
use CGI;
use strict;

my $cgi = new CGI;
my %langs;
my $maxlang = '';
for my $i (split(',', $ENV{'HTTP_ACCEPT_LANGUAGE'})) {
	my $l;
	if($i =~ /^(\S+);q=([\d\.]+)$/) {
		$langs{$1} = $2;
		$l = $1;
	} else {
		$langs{$i} = 1;
		$l = $i;
	}
	$maxlang = $l if $langs{$l} > $langs{$maxlang};
}

print $cgi->header, $cgi->start_html('Accept Language');
print "<p><table border=\"1\">\n";
print "<tr><th>Name</th><th>Value(q)</th></tr>\n";
foreach my $val (sort keys %langs) {
	print "<tr><td>" . $cgi->escapeHTML($val) . "</td><td>" .
		$cgi->escapeHTML($langs{$val}) . "</td></tr>\n";
}
print "</table></p>\n";
print "<p>Max $maxlang = $langs{$maxlang}</p>\n";
print $cgi->end_html;

▼ トップ

▼ プロフィール

▼ 個人的宣伝

LINUXサーバーインストール(FedoraCore4)
Oracle10gのバックアップを本気で理解し実践
FC4 や Oracle のインストールの仕方〜管理方法まで、詳しく載っています。 SearchManには情報がもりだくさんです。
いますぐ実践!Linuxシステム管理
システム管理初心者の方を対象に、システム管理のノウハウをお知らせします。
栗日記
毎日栗の絵を描いています。
退屈なとき、癒されたいときなどに、ご覧ください。:-)