header

PHPでPCとケータイを識別する

(1/2)

PHPでユーザー・アクセス情報を表示する」で解説した サーバ変数 HTTP_USER_AGENT を使えば、 アクセスしてきているのがケータイなのか識別することができる。
そこで今回は、アクセスしてきているのがPCかケータイなのかによって、 表示するコンテンツを自動変更するプログラムを紹介する。

サンプル・プログラム

0001: <?php
0002: /**isKeitai.php
0003:  * アクセスしてきているのがケータイだったら isKeitai.html にジャンプする
0004:  * @copyright (c)studio pahoo
0005:  * @author     パパぱふぅ
0006:  * @version     1.2  2007/02/04 通常・携帯サイトを1つのプログラムにまとめた
0007:  * @version     1.1  2007/02/03 Vodafone 702MO、ソフトバンクモバイルに対応
0008:  * @version     1.0  2005/03/19
0009:  *
0010: */
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: }
0037: 
0038: //【1】通常サイト ===========================================================
0039: if (isKeitai() == FALSE) {
0040: echo <<< EOF
0041: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
0042:  "http://www.w3.org/TR/html4/loose.dtd">
0043: <html lang="ja">
0044: <head>
0045: <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS" />
0046: <title>通常サイト</title>
0047: </head>
0048: <body>
0049: <h1>あたなは携帯電話以外からアクセスしています。</h1>
0050: USER-AGENT: {$_SERVER['HTTP_USER_AGENT']}
0051: </body>
0052: </html>
0053: EOF;
0054: //【2】携帯サイト ===========================================================
0055: else {
0056: echo <<< EOF
0057: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
0058:  "http://www.w3.org/TR/html4/loose.dtd">
0059: <html lang="ja">
0060: <head>
0061: <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS" />
0062: <title>携帯サイト</title>
0063: </head>
0064: <body>
0065: <h1>あたなは携帯電話からアクセスしています。</h1>
0066: USER-AGENT: {$_SERVER['HTTP_USER_AGENT']}
0067: </body>
0068: </html>
0069: EOF;
0070: }
0071: ?>

プログラムを実行する

携帯アクセス
携帯電話アクセス用QRコード

(この項つづく)