13

我使用下面的代码来查找用户代理,

    $user_agent = $_SERVER['HTTP_USER_AGENT']; 
    if (preg_match('/MSIE/i', $user_agent)) { 
       echo "Internet Explorer";
    }
    if (preg_match('/Firefox/i', $user_agent)) { 
       echo "FireFox";
    }
    if (strpos( $user_agent, 'Chrome') !== false)
    {
        echo "Google Chrome";
    }
    if (strpos( $user_agent, 'Safari') !== false)
    {
       echo "Safari";
    }
    if (preg_match('/Opera/i', $user_agent)) { 
       echo "Opera";
    }

    ?>

但是我的 chrome 浏览器突然返回到 useragent 下面

Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_4) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.155 Safari/537.22

它包含单词 safari 和 chrome.so 都打印了浏览器名称。this.thanks 的解决方案是什么。

4

2 回答 2

22

Chrome 的用户代理包含Safari但 Safari 的用户代理不包含Chrome所以使用if ... elseif

if (stripos( $user_agent, 'Chrome') !== false)
{
    echo "Google Chrome";
}

elseif (stripos( $user_agent, 'Safari') !== false)
{
   echo "Safari";
}

注意:使用stripos而不是strpos考虑大小写变化。

于 2013-03-07T13:14:08.327 回答
3

试试这个 :

$browser = get_browser(null, true);
print_r($browser);

From doc :尝试通过在 browscap.ini 文件中查找浏览器的信息来确定用户浏览器的功能。

参考: http: //php.net/manual/en/function.get-browser.php

于 2013-03-07T13:14:16.527 回答