在Mac上用Mac检测Chrome的可靠方法?

时间:2012-07-14 16:03:28

标签: php browser-detection

正如标题所说,有没有一种可靠的方法来检测用户是否使用PHP在Mac上使用Chrome访问我的页面?

我有一个只在Mac上使用Chrome时显示的错误,直到我将其整理好后,我想要一个弹出窗口来推荐用户使用其他浏览器。

3 个答案:

答案 0 :(得分:1)

使用$ _SERVER ['HTTP_USER_AGENT']查找用户的用户代理和一个函数,以检查它是否在字符串中。

//The following will find out whether the user is using a Mac, obviously you can change this by echoing the user agent to find out what you need to search for.
$browser = strpos($_SERVER['HTTP_USER_AGENT'], "Chrome");
$os = strpos($_SERVER['HTTP_USER_AGENT'], "Macintosh; Intel Mac OS X");

if($browser !== false && $os !== false) {
  //do stuff if on a mac with Chrome
}

这适用于任何类型的Mac OS X软件和任何版本的Chrome。如果您想进一步缩小搜索结果范围,可以使用:

if($_SERVER['HTTP_USER_AGENT'] == "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_4) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.1132.57 Safari/536.11" ) {
  //do stuff here
}

答案 1 :(得分:0)

如果您发布了您遇到问题的代码而不是创建一个hacky修复程序会更好。

但是,您可以使用$_SERVER['HTTP_USER_AGENT']检查用户浏览器/操作系统。

为了提供帮助,您可以从Chrome上的Mac用户那里获得Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_4) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.1132.57 Safari/536.11之类的内容。

注意

并非始终设置用户代理,因此请先使用isset以避免出现通知。

答案 2 :(得分:0)

我知道您正在寻找用于查找浏览器的PHP解决方案,但由于您最有可能遇到的问题是客户端问题,因此不需要从服务器端检测它

所以这是一个使用javascript的解决方案,如果你得到了你期望的匹配,你可以隐藏正文,或显示一个弹出窗口,或者将它发送到你的服务器,设置一个cookie,或任何你认为适合“修复”的东西你的问题(虽然你应该考虑真正解决问题...)

在这里查看the source

function that_is_called_on_load() {
    if (BrowserDetect.browser == "Chrome" && BrowserDetect.OS == "Mac") {
        alert("You are using mac, sorry.");
        window.location = "mac_chrome.php";
    }
}

这是一个非常“脏”的解决方案, 可能 比服务器端更准确/可靠。