我使用下面的代码来查找用户代理,
$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两个浏览器名称都被打印出来。这是什么解决方案。谢谢。
答案 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文件中查找浏览器的信息来确定用户浏览器的功能。