PHPでブラウザ情報を取得する

 このエントリーをはてなブックマークに追加

投稿日:2011/12/24

/**
 * ブラウザを判別してバージョンを取得する
 * @see http://d.hatena.ne.jp/Akkiesoft/20091004/1254599409
 */
$agent = $_SERVER['HTTP_USER_AGENT'];
if ($pos = strpos($agent, 'MSIE')) {
 $name = 'MSIE';
 $ver = substr($agent, $pos + 5, strpos($agent, ';', $pos) - $pos - 5);
} else if ($pos = strpos($agent, 'Firefox')) {
 $name = 'Firefox';
 $ver = substr($agent, $pos + 8, strlen($agent) - $pos - 8);
} else if ($pos = strpos($agent, 'Safari')) {
 if ($pos = strpos($agent, 'Chrome')) {
  $name = 'Chrome';
  $ver = substr($agent, $pos + 7, strpos($agent, ' ', $pos) - $pos - 7);
 } else {
  $name = 'Safari';
  $pos = strpos($agent, 'Version');
  $ver = substr($agent, $pos + 8, strpos($agent, ' ', $pos) - $pos - 8);
 }
}
else if (ereg('Opera', $agent)) {
 $name = 'Opera';
 $pos = strpos($agent, 'Version');
 $ver = substr($agent, $pos + 8, strlen($agent) - $pos - 8);
}
else {
 $name = 'Unknown';
 $ver = 'Unknown';
}

print $name .' / ' .$ver . '';

ってな感じ・・・
あんまりしっくりきてないけど、動作するみたいだからいいや・・・
もっとイイやり方知ってる人がいれば教えて下さい

僕の環境(Windows)でチェックすると下記のように表示されました

MSIE / 9.0
Chrome / 16.0.912.63
Firefox / 3.6.25
Safari / 5.1.2
Opera / 11.60

※Firefoxのバージョンが古いのは気にしないでください

なんか、'HTTP_USER_AGENT'のバージョン情報の表記がバージョンによって異なるみたい・・・
定期的なメンテナンスが必要になるかも・・・ めんどくせー





↓の参考サイトをコピペするとSafariとFirefoxのバージョンがなんかおかしかった・・・
情報がちょと古いからかな・・・?

[参考サイト]
ブラウザのバージョンを取得するPHPスクリプト [2009/10/04]


【追記】[2011/12/25]
上記をつくった直後にこんなの発見し、試して(v1.9)みましたが、getVersion()がどのブラウザも[unknown]と表示されて動作してないっぽいです。
利用者のブラウザ・OS・バージョンを取得できるクラスライブラリ「Browser.php」 [2011/01/12]

0 件のコメント:

コメントを投稿