この記事は、最後の更新から1121日を超えています。
2017.12.15 / 2018.2.9 update
webサイトにアクセスしてきた人の端末を判定する、PHP用の関数です。
関数を実行すると、ユーザーの端末によって以下の文字列が返り値として返ってきます。
"pc"・・・パソコン
"tablet"・・・AndroidタブレットやiPadなどのタブレット端末
"mobile"・・・iPhoneなどのスマートフォン
"old-phone"・・・ガラケー
関数は以下のとおりです。
<?php
function ch_device(){
$ua = $_SERVER['HTTP_USER_AGENT'];
if ((strpos($ua, 'Android') !== false) && (strpos($ua, 'Mobile') !== false) || (strpos($ua, 'iPhone') !== false) || (strpos($ua, 'Windows Phone') !== false)) {
// スマホからのアクセス
$check_device = "mobile";
} elseif ((strpos($ua, 'Android') !== false) || (strpos($ua, 'iPad') !== false)) {
// タブレットからのアクセス
$check_device = "tablet";
} elseif ((strpos($ua, 'DoCoMo') !== false) || (strpos($ua, 'KDDI') !== false) || (strpos($ua, 'SoftBank') !== false) || (strpos($ua, 'Vodafone') !== false) || (strpos($ua, 'J-PHONE') !== false)) {
// 携帯からのアクセス
$check_device = "old-phone";
} else {
// PCからのアクセス
$check_device = "pc";
}
return $check_device;
}
?>
ch_device()を実行すれば値が返ってくるので、その値を元に判定してください。
<?php
switch( ch_device() ){
case "mobile":
/* スマホ用の処理 */
break;
case "tablet":
/* タブレット用の処理 */
break;
case "pc":
/* パソコン用の処理 */
break;
}
?>
主要端末からのアクセスは抑えているつもりですが、ユーザーエジェントに含まれる文字列から予測しているだけですので、端末によっては判定できないものも出てくると思います(特にガラケー判定はキャリア決め打ちです)
詳しい方は、必要に応じて関数に判定を追加してください。
関連記事
©dgcolor.info