我使用下面的代码来查找用户代理,
$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";
}
?>
Run Code Online (Sandbox Code Playgroud)
但是我的Chrome浏览器突然回到了下面
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
Run Code Online (Sandbox Code Playgroud)
它包含单词safari和chrome.so两个浏览器名称都打印出来.这是什么解决方案.谢谢.
Mic*_*ton 18
Chrome的用户代理包含Safari
但Safari的用户代理不包含Chrome
,请使用if ... elseif
:
if (stripos( $user_agent, 'Chrome') !== false)
{
echo "Google Chrome";
}
elseif (stripos( $user_agent, 'Safari') !== false)
{
echo "Safari";
}
Run Code Online (Sandbox Code Playgroud)
注意:使用stripos
而不是strpos
考虑案例变化.
归档时间: |
|
查看次数: |
24107 次 |
最近记录: |