Php:查找Chrome和Safari浏览器

时间:2013-03-07 13:09:32

标签: php user-agent

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

    $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两个浏览器名称都被打印出来。这是什么解决方案。谢谢。

2 个答案:

答案 0 :(得分:17)

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来说明案例变化。

答案 1 :(得分:2)

试试这个:

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

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

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