この記事は、最後の更新から375日を超えています。

【PHP】パソコン・タブレット・スマホの判定用関数

2017.12.15 / 2018.2.9 update

【PHP】パソコン・タブレット・スマホの判定用関数

概要

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;
}
?>

注意事項

主要端末からのアクセスは抑えているつもりですが、ユーザーエジェントに含まれる文字列から予測しているだけですので、端末によっては判定できないものも出てくると思います(特にガラケー判定はキャリア決め打ちです)
詳しい方は、必要に応じて関数に判定を追加してください。


関連記事