2012-03-13 5 views

答えて

6

多くのブラウザがそれぞれ異なると認識しているため、完全なOS名と完全なブラウザ名を取得するのは難しいと思います。あなたはおそらくいくつかのファンキーな正規表現を必要とし、それは時間の100%動作しないかもしれません。

ここで私はブラウザを識別するために使用する簡単な方法です。あなたのニーズに合わせてそれを適応させることができるかもしれません。

+0

を感謝を達成するためにhttps://github.com/dmolsen/ua-parser-phpのようなものを見てお勧めします:) –

2

@augustknight:注は、IE11はdoesn't私はトライデントトークンに試合を追加することをお勧め、「MSIE」トークンを送信します。

IE 11ユーザエージェントのサンプル:

Mozilla/5.0 (Windows NT 6.1; Trident/7.0; rv:11.0) like Gecko 

変更コード:?

<?php 
public static function getUserAgent() 
{ 
    static $agent = null; 

    if (empty($agent)) { 
     $agent = $_SERVER['HTTP_USER_AGENT']; 

     if (stripos($agent, 'Firefox') !== false) { 
      $agent = 'firefox'; 
     } elseif (stripos($agent, 'MSIE') !== false) { 
      $agent = 'ie'; 
     } elseif (stripos($agent, 'Trident') !== false) { 
      $agent = 'ie'; 
     } elseif (stripos($agent, 'iPad') !== false) { 
      $agent = 'ipad'; 
     } elseif (stripos($agent, 'Android') !== false) { 
      $agent = 'android'; 
     } elseif (stripos($agent, 'Chrome') !== false) { 
      $agent = 'chrome'; 
     } elseif (stripos($agent, 'Safari') !== false) { 
      $agent = 'safari'; 
     } elseif (stripos($agent, 'AIR') !== false) { 
      $agent = 'air'; 
     } elseif (stripos($agent, 'Fluid') !== false) { 
      $agent = 'fluid'; 
     } 

    } 

    return $agent; 
} 

>

1

の本以上を達成するためにPHPの組み込み関数もあります:get_browser()が。

$agent = get_browser(); 
echo $agent->platform; 
echo $agent->parent; // or $agent->browser . $agent->version 
関連する問題