エンジニア採用セミナー
エンジニア採用セミナー
2008.04.18

PHPでPCサイトと携帯サイトの振り分け方

ゴウ

手書きメーカーを作った時に、PC版と携帯版を作って、アクセスされた端末に合わせて自動的に振り分けたかったので調べてみました。

そもそもそんな事ができるって知らなかったんですが(あんまり携帯でネットやらないんで)、大手のブログとかって大体そうなってるって知って、ああ、それはやらなくてはと、最近思うようになりました。

PHPで振り分ける

$_SERVER['HTTP_USER_AGENT']

どうやって振り分けてるのか知らなかったのですが、どうやら上記の内容でユーザーエージェントってのが取得できるみたい。それをキーにして判断してあげるみたいです。

とりあえず大雑把ですが、こんな感じで携帯とPCを振り分けてみました。

//ユーザーエージェントの判別
function isKeitai() {
	//NTT DoCoMo
	if (preg_match("/DoCoMo/", $_SERVER['HTTP_USER_AGENT'])) return true;
	//旧J-PHONE~vodafoneの2G
	if (preg_match("/J-PHONE/", $_SERVER['HTTP_USER_AGENT'])) return true;
	//vodafoneの3G
	if (preg_match("/Vodafone/", $_SERVER['HTTP_USER_AGENT'])) return true;
	//vodafoneの702MOシリーズ
	if (preg_match("/MOT/", $_SERVER['HTTP_USER_AGENT'])) return true;
	//SoftBankの3G
	if (preg_match("/SoftBank/", $_SERVER['HTTP_USER_AGENT'])) return true;
	//au (KDDI)
	if (preg_match("/PDXGW/", $_SERVER['HTTP_USER_AGENT'])) return TRUE;
	if (preg_match("/UP.Browser/", $_SERVER['HTTP_USER_AGENT'])) return true;
	//ASTEL
	if (preg_match("/ASTEL/", $_SERVER['HTTP_USER_AGENT'])) return true;
	//DDI Pocket
	if (preg_match("/DDIPOCKET/", $_SERVER['HTTP_USER_AGENT'])) return true;

	return false;
}

//PCと携帯とで振り分ける
if(isKeitai() == false){
	require_once("PC版");
}else{
	require_once("携帯版");
}

ユーザーエージェントをもっと細かく調べてあげれば、携帯の機種別に振り分ける事も可能っぽい。

とりあえず、どんなサービスを提供するにしても、携帯版ってのはこれからは絶対必要だろうから、これを使ってガリガリ振り分けていこうと思いました。でも正直、携帯サイト作るのは苦手です。あんまり面白くないんだもん・・・。