正規表現で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 を参照。