(2024年2月11日)isKeitai()→getDevice() デバイス名を返す
サンプル・プログラムの実行
サンプル・プログラム
isKeitai.php | サンプル・プログラム本体 |
バージョン | 更新日 | 内容 |
---|---|---|
4.0.0 | 2024/02/11 | isKeitai()→getDevice() デバイス名を返す |
3.01 | 2022/07/02 | bug-fix |
3.0 | 2022/05/15 | 大幅改訂,PHP8対応 |
2.0 | 2008/09/09 | ロジック見直し |
1.2 | 2007/02/04 | 通常・携帯サイトを1つのプログラムにまとめた |
解説:アクセスしているデバイス名を返す
79: /**
80: * アクセスしているデバイス名を返す.
81: * 現在判明している HTTP_USER_AGENT の値を利用
82: * @param なし
83: * @return bool TRUE:ケータイである/FALSE:ケータイでない
84: */
85: function getDevice() {
86: //HTTP_USER_AGENT パターン
87: static $table = array(
88: array('ドコモ携帯電話', '/DoCoMo/'),
89: array('au携帯電話', '/PDXGW/'),
90: array('ソフトバンク携帯電話', '/SoftBank/'),
91: array('J-PHONE携帯電話', '/J-PHONE/'),
92: array('ボーダフォン携帯電話', '/Vodafone/'),
93: array('ボーダフォン携帯電話', '/UP\.Browser/'),
94: array('ASTEL携帯電話', '/ASTEL/'),
95: array('DDIポケット携帯電話', '/DDIPOCKET/'),
96: array('MOT携帯電話', '/MOT/'),
97: array('イーモバイル携帯電話', '/emobile/'),
98: array('BlackBerry', '/BlackBerry/'),
99: array('iPhone', '/CPU\s+iPhone/'),
100: array('iPod', '/iPod.+CPU\s+iPhone/'),
101: array('iPad', '/iPad.+\;CPU/'),
102: array('Android', '/Linux\;\s*Android.+Mobile/'),
103: array('Windows CE', '/Windows\*CE/'),
104: array('Windows', '/Windows/'),
105: array('macOS', '/Macintosh\;.+mac\s*os/i'),
106: array('Linux', '/Linux/'),
107: array('Linux', '/FreeBSD/'),
108: array('Linux', '/SunOS/'),
109: array('PlayStation|PSP', '/PlayStation/i'),
110: array('任天堂ゲーム機', '/Nintendo/i'),
111: );
112:
113: $res = 'unknown';
114: //HTTP_USER_AGENT にマッチしたらループ脱出
115: foreach ($table as $items) {
116: if (preg_match($items[1], $_SERVER['HTTP_USER_AGENT']) > 0) {
117: $res = $items[0];
118: break;
119: }
120: }
121: return $res;
122: }
なお、ブラウザやプログラムによって HTTP_USER_AGENT の値を偽装できるものがある。したがって、getDevice の戻り値は絶対正しいとは言い切れない。あくまで目安としてご利用いただきたい。
参考サイト
- PHPでユーザー・アクセス情報を表示する:ぱふぅ家のホームページ
- 携帯ブラウザのユーザーエージェントによる機種判別、キャリア判別:MEMORVA
- 携帯電話で個体識別番号の取得方法:GIFアニメ工房