サンプル・プログラム
サンプル・プログラムの解説:携帯電話の識別

ただし、HTTP_USER_AGENT の値は携帯電話キャリアによって異なる。また、発売時期によっても異なる。
さらに、PCのブラウザによっては HTTP_USER_AGENT の値を偽装できる(例:Sleipnir)。
したがって、isKeitai の結果は絶対的とは言い切れない。あくまで目安としてご利用いただきたい。
0011: /**
0012: * アクセスしてきているのがケータイかどうか調べる
0013: * 現在判明しているHTTP_USER_AGENTの値です
0014: * @return bool TRUE:ケータイである/FALSE:ケータイでない
0015: */
0016: function isKeitai() {
0017: //NTT DoCoMo
0018: if (preg_match("/DoCoMo/", $_SERVER['HTTP_USER_AGENT'])) return TRUE;
0019: //旧J-PHONE~vodafoneの2G
0020: if (preg_match("/J-PHONE/", $_SERVER['HTTP_USER_AGENT'])) return TRUE;
0021: //vodafoneの3G
0022: if (preg_match("/Vodafone/", $_SERVER['HTTP_USER_AGENT'])) return TRUE;
0023: //vodafoneの702MOシリーズ
0024: if (preg_match("/MOT/", $_SERVER['HTTP_USER_AGENT'])) return TRUE;
0025: //SoftBankの3G
0026: if (preg_match("/SoftBank/", $_SERVER['HTTP_USER_AGENT'])) return TRUE;
0027: //au (KDDI)
0028: if (preg_match("/PDXGW/", $_SERVER['HTTP_USER_AGENT'])) return TRUE;
0029: if (preg_match("/UP\.Browser/", $_SERVER['HTTP_USER_AGENT'])) return TRUE;
0030: //ASTEL
0031: if (preg_match("/ASTEL/", $_SERVER['HTTP_USER_AGENT'])) return TRUE;
0032: //DDI Pocket
0033: if (preg_match("/DDIPOCKET/", $_SERVER['HTTP_USER_AGENT'])) return TRUE;
0034:
0035: return FALSE;
0036: }
サンプル・プログラムの解説:表示コンテンツの切り換え

念のため、HTTP_USER_AGENT の生の値([$_SERVER'HTTP_USER_AGENT'])を画面に表示するようにしてある。
0039: if (isKeitai()) {
0040: $msg = 'あなたは携帯電話からアクセスしています。';
0041: } else {
0042: $msg = 'あなたは携帯電話以外からアクセスしています。';
0043: }
参考サイト
- PHPでユーザー・アクセス情報を表示する:ぱふぅ家のホームページ
- 携帯ブラウザのユーザーエージェントによる機種判別、キャリア判別:MEMORVA
- 携帯電話で個体識別番号の取得方法:GIFアニメ工房
そこで今回は、アクセスしてきているのがPCか携帯電話なのかを判別し、表示するコンテンツを自動変更するプログラムを作ってみることにする。