※このサンプルの解説は、「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";