PHPでキャリア毎に振り分けを行うには(ユーザエージェント編)
Tweet
記念すべきリニューアル後一つめの記事は、原点に帰って、
「ユーザエージェントによるキャリアの振り分け」
について書こうと思います。
「http://example.jp/」 にアクセスがあった場合、
- ドコモは 「http://example.jp/i/」 にジャンプ
- auは 「http://example.jp/au/」 にジャンプ
- SoftBankは 「http://example.jp/sb/」 にジャンプ
- それ以外は通常通り「http://example.jp/」を表示
というようなケースはとてもよくあります。
PC版とモバイル版に分けるためというのはもちろんですが、各キャリア用のHTMLや画像を、それぞれのフォルダに用意すればよいので、各キャリアに最適化したサイトの制作が容易になるからです。
下記はそんな振り分けプログラムのサンプルです。
// ユーザエージェントの取得
$agent = $_SERVER['HTTP_USER_AGENT'];
if (preg_match('/^J-PHONE/', $agent) or
preg_match('/^Vodafone/', $agent) or
preg_match('/^SoftBank/', $agent) or
preg_match('/^MOT-/', $agent)) {
// J-PHONE, Vodafone, SoftBankの場合
$dir = 'sb/';
} elseif (preg_match('/^DoCoMo/', $agent)) {
// DoCoMoの場合
$dir = 'i/';
} elseif (preg_match('/UP.Browser/', $agent)) {
// auの場合
if(preg_match('/^KDDI/', $agent)) {
// au(HTML-OK)
$dir = 'au/';
} else {
// au(HDML-Only)
$dir = 'au/';
}
} else {
// その他PC等
$dir = '';
}
$url = 'http://example.jp/' . $dir;
header('Location: ' . $url); // 指定ページに移動
exit;
ポイントはauよりも先にソフトバンクを判定することです。
auだけではなく、ソフトバンク端末の中にも「UP.Browser」が搭載されている端末があります。
またソフトバンクの端末の中には「MOT-」から始まる特殊な端末があることにも注意してください。
もっともこの端末のシェアはかなり低いと思われますので、アクセスがあることは少ないでしょう。
今回はPHPのコードをサンプルとして記載しますが、他の言語でも基本は同じです。
関連:
Flash プロの現場の仕事術 CS5/CS4/CS3対応
体系的に学ぶ 安全なWebアプリケーションの作り方
ケータイHTML ポケットリファレンス
携帯サイト年鑑2010
Linux-DB システム構築/運用入門
携帯端末用Web制作バイブル 第2版
ブックレビュー:ユーザー視点でつくる 携帯サイト制作の基礎知識
札幌のソーシャルゲーム開発なら

最近の記事