2012-03-13 82 views

回答

6

我認爲獲取完整的操作系統名稱和完整的瀏覽器名稱是很棘手的,因爲許多瀏覽器都以不同的方式標識自己。你可能需要一些奇特的正則表達式,然後它可能不會100%的時間工作。

以下是我用來識別瀏覽器的簡單方法。您可能可以根據自己的需要進行調整。

+0

感謝分享:) – 2012-03-13 23:39:30

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 
相關問題