perlでブラウザを判別して表示するHTMLを分ける方法は?
[上に]
[前に]
[次に]
とも
[E-Mail]
1999/08/24(火) 14:14:17
IEとネスケで表示するHTMLを変えるのに、
CGIレベルで変えたいんですけど、
JavaScriptとPerlでは環境変数が
違うようなので、困っています。
何かいい方法はないでしょうか?
ふじ
1999/08/24(火) 14:34:25
>JavaScriptとPerlでは環境変数が違うようなので
CGIで振り分けるのに JavaScriptの navigator オブジェクトを使う必要って、あるんですか?
Perlで
$ENV{'HTTP_USER_AGENT'}
を見て判別してやるだけで良いと思うんですけど。
とも
1999/08/24(火) 14:47:23
言葉がたらなかったですね。
>$ENV{'HTTP_USER_AGENT'}
>を見て判別してやるだけで良いと思うんですけど。
おっしゃるように$ENV{'HTTP_USER_AGENT'}で判別するつもりなんですけど、
ねすけ:Mozilla/4.5 [ja] (Win95; I)
IE ;Mozilla/4.0 (compatible; MSIE 4.01; Windows 95)
と、返ってくるので、
if ($ENV{'HTTP_USER_AGENT'} =~ /MSIE/)
とマッチングでとりあえずは分けられるまで出来たんですが、
バージョン情報の取り出し方や、
その他のブラウザ等の切り分けかたも、知りたいです。
ふじ
1999/08/24(火) 16:33:36
正規表現使って
$str =~ /Mozilla\/(.*)/;
$appVersion = $1;
#バージョンの数字だけ欲しいなら
#$str =~ /Mozilla\/([\d.]+)/;
#$appVersion = $1;
if($str =~ /MSIE/){
$appName = "Microsoft Internet Explorer";
}elsif($str !~ /compatible/ and $str =~ /Mozilla/){
$appName = "Netscape";
}else{
$appName = "Others";
}
他のブラウザについては、送って来る HTTP_USER_AGENT の値を見て、
それにマッチするような正規表現を追加するしかないかな・・・
ふじ
1999/08/24(火) 16:35:48
あと、JavaScriptで得た値をCGIにパラメータとして送っちゃう、
って方法もありますね。
とも
1999/08/24(火) 20:07:25
[[解決]]
おお!すごぃ。
正規表現の使い方が解らなかったんです。
ありがとうございました。
[上に]
[前に]
[次に]