- ベストアンサー
ユーザーエージェントによって表示される画像を変更したいのですが
cgiでユーザーエージェントによって、 ホームページに表示される画像を変更したいのですが、 プログラム・やり方を教えていただけないでしょうか。 よろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
ANo.1さんの回答の補足になりますけど UAはブラウザによっては偽装とかもできますけどそれを承知の上で でしょうか。 どうしてもCGIでやりたいとかクライアント側の環境依存などを 考慮したいというのでなければたしかにJavaScriptの方が簡単かも しれません。 JavaScriptは対応環境でも無効にしたら動作しません。
その他の回答 (2)
- Suzi
- ベストアンサー率38% (130/334)
>>javaのコードを書いていただけないでしょうか。 JavaとJavascriptは別なものですが、求めうる細かい条件が分からないので書きようがないのが実際です。 携帯からだと、Javascriptは厳しいのでcgiになると思います。 それぞれ携帯のuser_agentは、各携帯サイトに記されています。 以下、cgiだと #!/usr/bin/perl print "Content-type: text/html\n\n"; print "<html><head>\n"; ・・・・・・ $agent = $ENV{'HTTP_USER_AGENT'}; if($agent =~ /^DoComo/){ $imege = aaaa.jpg; }elsif($agent =~ /^J-PHONE/){ $imege = bbbb.jpg; }elsif($agent =~ /^UP.Browser|^KDDI/){ $imege =cccc.jpg; ・・・・ ・・・・ else{ $imege =zzzz.jpg; #PC用 } print "<img src=\"./imege/$imege\">\n"; ・・・・・・ print "</body>\n</html>\n"; たしか、携帯機種によってjpgやらpng、gifのみとかありましたね。
お礼
回答ありがとうございます。 とてもわかりやすいコードです。 勉強になりました。
- Suzi
- ベストアンサー率38% (130/334)
$usrAgent = $ENV{"HTTP_USER_AGENT"}; とすると、$usrAgentには、http://www.openspc2.org/userAgent/ のようなアクセス者のデーターが入ります。 if($usrAgent =~ /MSN/){ print "<img src=\"./image/aaaaa.jpg>\" }elsif($usrAgent =~ /Mac/){ print "<img src=\"./image/bbbbb.jpg>\" }elsif・・・・・・ とかになります。 ただトップページにそれをやるには、index.htmlなどをindex.cgiとかにし、.htaccess に DirectoryIndex index.cgi index.html などと記さなければなりませんが、これだけならCGIよりも通常のHTML + Javascriptでやった方が簡単だと思います。 <HEAD>~</HAED>内に <script language="JavaScript"> <!-- function Image(){ if(navigator.appName.charAt(0)=="N" ){ document.write("<img src=\"./image/aaaaa.jpg>"); }else{ document.write("<img src=\"./image/bbbbb.jpg>"); } } //--> </script> 表示させたいhtmlの箇所に <script language="JavaScript"> Image(); </script> Javascriptの詳細は、Javascriptのカテゴリーにてですが。
補足
携帯かPCかで、表示させる画像を変えたいのですが、 javaのコードを書いていただけないでしょうか。 javaがわかりません。
お礼
回答ありがとうございます。 >JavaScriptは対応環境でも無効にしたら動作しません。 そうですね。携帯かPCで閲覧ページを切り替えたかったのですが駄目ですね。