PHPでデバイスやブラウザの情報を取得する

PHPでデバイスやブラウザの情報を取得する

サーバーサイドとクライアントサイドでブラウザの種類を取得する方法がありますが今回はサーバーサイド(PHP)で取得します。取得する情報はブラウザの種類、ブラウザのバージョンの他に、プラットフォーム、WebKitを使用しているか、WebKitのバージョンです。

ユーザーエージェントの情報を元にブラウザの種類を取得する

$_SERVER[‘HTTP_USER_AGENT’]を使いユーザー エージェント文字列を取得します。さらに preg_match( )によるマッチングでブラウザの種類を判別させます。

PHP
class browser{
  
  function get_info(){
    
    $ua = $_SERVER['HTTP_USER_AGENT'];
    $browser_name = $browser_version = $webkit_version = $platform = NULL;
    $is_webkit = false;
    
    //Browser
    if(preg_match('/Edge/i', $ua)){
      
      $browser_name = 'Edge';
      
      if(preg_match('/Edge\/([0-9.]*/', $ua, $match)){
      
        $browser_version = $match[1]; 
      }
      
    }elseif(preg_match('/(MSIE|Trident)/i', $ua)){
      
      $browser_name = 'IE';
      
      if(preg_match('/MSIE\s([0-9.]*)/', $ua, $match)){
        
        $browser_version = $match[1];
      
      }elseif(preg_match('/Trident\/7/', $ua, $match)){
        
        $browser_version = 11;
      }
    
    }elseif(preg_match('/Presto|OPR|OPiOS/i', $ua)){
      
      $browser_name = 'Opera';
      
      if(preg_match('/(Opera|OPR|OPiOS)\/([0-9.]*)/', $ua, $match)) $browser_version = $match[2];
      
    }elseif(preg_match('/Firefox/i', $ua)){
      
      $browser_name = 'Firefox';
      
      if(preg_match('/Firefox\/([0-9.]*)/', $ua, $match)) $browser_version = $match[1];
      
    }elseif(preg_match('/Chrome|CriOS/i', $ua)){
      
      $browser_name = 'Chrome';
      
      if(preg_match('/(Chrome|CriOS)\/([0-9.]*)/', $ua, $match)) $browser_version = $match[2];
      
    }elseif(preg_match('/Safari/i', $ua)){
      
      $browser_name = 'Safari';
      
      if(preg_match('/Version\/([0-9.]*)/', $ua, $match)) $browser_version = $match[1];
    }
    
    //Webkit
    if(preg_match('/AppleWebkit/i', $ua)){
      
      $is_webkit = true;
      
      if(preg_match('/AppleWebKit\/([0-9.]*)/', $ua, $match)) $webkit_version = $match[1];
    }
    
    //Platform
    if(preg_match('/ipod/i', $ua)){
      
      $platform = 'iPod';
      
    }elseif(preg_match('/iphone/i', $ua)){
      
      $platform = 'iPhone';
      
    }elseif(preg_match('/ipad/i', $ua)){
      
      $platform = 'iPad';
      
    }elseif(preg_match('/android/i', $ua)){
      
      $platform = 'Android';
      
    }elseif(preg_match('/windows phone/i', $ua)){
      
      $platform = 'Windows Phone';
      
    }elseif(preg_match('/linux/i', $ua)){
      
      $platform = 'Linux';
      
    }elseif(preg_match('/macintosh|mac os/i', $ua)) {
      
      $platform = 'Mac';
      
    }elseif(preg_match('/windows/i', $ua)){
      
      $platform = 'Windows';
    }
    
    return array(
      
      'ua' => $ua,
      'browser_name' => $browser_name,
      'browser_version' => intval($browser_version),
      'is_webkit' => $is_webkit,
      'webkit_version' => intval($webkit_version),
      'platform' => $platform
    );
  }//get_info()
};

$browser = new browser();
$browser_info = $browser->get_info();
  • 10行目
    ブラウザの種類とバージョンを判定します。
  • 58行目
    WebKitを使用しているかとバージョンの判定をします。
  • 66行目
    プラットフォームの種類を判定します。
  • 99行目
    取得した情報は配列で返します。

オプション

配列のキー 配列の値 説明
ua ユーザーエージェント文字列 ユーザーエージェントを返す。
browser_name Chrome, Opera, Safari, Firefox, IE, Edge ブラウザ名を返す。
browser_version バージョン番号 ブラウザのバージョンを文字列で返す。
is_webkit true, false WebKitを使用しているかをブール値で返す。
webkit_version バージョン番号 WebKitのバージョンを文字列で返す。
platform Mac, Windows, Linux, Android, iPhone, iPod, iPad, Windows Phone プラットフォーム名を返す。

デモ PHPでデバイス又はブラウザの種類を取得する

現在使用しているブラウザの種類、ブラウザのバージョン、プラットフォーム、WebKitを使用しているか、WebKitのバージョンを取得します。

プラットフォーム
ブラウザ名
バージョン
WebKitを使用しているか レンダリングエンジンにWebKitを使用しています。
バージョン 537.36
ページの先頭へ