
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行目
取得した情報は配列で返します。
デモ PHPでデバイス又はブラウザの種類を取得する
現在使用しているブラウザの種類、ブラウザのバージョン、プラットフォーム、WebKitを使用しているか、WebKitのバージョンを取得します。
プラットフォーム | |
ブラウザ名 | バージョン |
WebKitを使用しているか | レンダリングエンジンにWebKitを使用していません。 バージョン |