※このサンプルの解説は、「CGI(Perl)の解説」をすべて読み終えてる方を前提としています。

■ 携帯電話のキャリア別を取得

以前、「Javascriptサンプル」で「携帯電話のキャリア別にジャンプ」を解説しましたが、携帯電話はJavascriptが使えず、キャリア別ジャンプができませんでした。

そのため今回はCGI(Perl)で同様の処理を作成してみます。
まずは、「DoCoMo」「J-PHONE(Vodafone)」「EZWeb」「PC(パソコン)」の4種類に振り分ける処理を考えてみましょう。

この処理を理解するには当然ですが、「HTML」の知識が必要になります。
解からない方は「HTMLの解説」で勉強してくださいね。

【 解    説 】

まず、アクセスしてきたユーザーのエージェント(OSやブラウザ情報など)を取得します。
その方法は、以前の「アクセス情報の表示」や「アクセスログの作成」で解説したとおり、次のように記述します。
$agent = $ENV{'HTTP_USER_AGENT'};

この取得した文字列中に、「DoCoMo」の場合「DoCoMo」「J-PHONE」「Vodafone」の場合「J-PHONE」「EZWeb」の場合「UP.Browser」という文字が入ってることを利用します。
※「vodafone」も「J-PHONE」という文字が入ってます。

次に、変数「$agent」の中に「DoCoMo」という文字が入ってるかどうかは、「パターン結合演算子」を使い、次のように記述することにより確認できます。
※「パターン結合演算子」については別ページで解説します。
if ($agent =~ "DoCoMo"){ }

あと、「J-PHONE(Vodafone)」「EZWeb」も同じで、それ以外を「PC(パソコン)」と判断するようにします。

では、上記の内容を使用して「携帯電話のキャリア別を取得」を作成してみます。

【記述サンプル】
#!/usr/bin/perl $agent = $ENV{'HTTP_USER_AGENT'}; $str0 = "pc"; if ($agent =~ "DoCoMo"){ $str0 = "docomo"; } if ($agent =~ "J-PHONE"){ $str0 = "jphone"; } if ($agent =~ "UP.Browser"){ $str0 = "ezweb"; } print "エージェント:$agent<br>\n"; print "キャリア:$str0<br>\n";
◆実行結果について

上記のサンプルを「agedsp.cgi」という名前で保存して実行してみてください。

実行結果はこちらをクリックしてください。
なお、実行結果については、各々のサーバーの環境、ユーザーの環境にによって内容は変わってきます。


page update:2010/01/23 20:32

Copyright (c) 2000-2009, all Rights Reserved & Produced by atom