正規表現でUser Agent分岐 モバイル版

User AgentをPHPで分岐し端末(iPhone/iPod/iPad/Android/Windows Phone/BlackBerry)判別

iPodのUSer Agentには Mozilla/5.0 (iPod; CPU iPhone OS 5_0_1 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Version/5.1 Mobile/9A405 Safari/7534.48.3 のようにiPhoneが含まれるため、 iPhoneをiPhone;で抽出。

BlackBerryは10からUSer AgentがBB10に変更される。

PHP

/** * * 正規表現でUserAgent分岐/モバイル * * @param string $user_agent * @return string */ function getTerminal($user_agent = '') { if (empty($user_agent)) { // ユーザエージェント $user_agent = $_SERVER['HTTP_USER_AGENT']; } if (preg_match('/iPhone;/', $user_agent)) { $terminal = 'iPhone'; } elseif (preg_match('/iPod/', $user_agent)) { $terminal = 'iPod'; } elseif (preg_match('/iPad/', $user_agent)) { $terminal = 'iPad'; } elseif (preg_match('/Android/', $user_agent)) { $terminal = 'Android'; } elseif (preg_match('/Windows Phone/', $user_agent)) { $terminal = 'Windows Phone'; } elseif (preg_match('/(BlackBerry|BB)/', $user_agent)) { $terminal = 'BlackBerry'; } else { $terminal = 'unidentified'; } return $terminal; }

サンプル

UserAgent一覧はphp.o0o0.jp-UserAgent を参照。

最新の記事

プロフィール

流されるままにウェブ業界で仕事しています。
主にLAPP環境でPHPを書いています。
最近はjQueryをよく書いています。