Google chrome php get_浏览器现在将Opera读作Google Chrome?

Google chrome php get_浏览器现在将Opera读作Google Chrome?,google-chrome,browser,opera,browser-detection,Google Chrome,Browser,Opera,Browser Detection,我刚刚对我的代码进行了一些随机测试,并震惊地发现get\u browser()将Opera读作Google Chrome 几个月前,get_browser()在所有5种浏览器(chrome、ie、ff、opera、safari)上都给了我正确的结果 今天,Opera显示了与Google Chrome相同的值。首先,我认为get_browser()一定是问题所在,所以我尝试了其他方法。我看到了它的工作原理,但和get_浏览器一样,它也检测到Opera是Google Chrome 我快速搜索了一下,

我刚刚对我的代码进行了一些随机测试,并震惊地发现
get\u browser()
将Opera读作Google Chrome

几个月前,get_browser()在所有5种浏览器(chrome、ie、ff、opera、safari)上都给了我正确的结果

今天,Opera显示了与Google Chrome相同的值。首先,我认为get_browser()一定是问题所在,所以我尝试了其他方法。我看到了它的工作原理,但和get_浏览器一样,它也检测到Opera是Google Chrome

我快速搜索了一下,发现Opera的文章现在使用Chromium作为桌面浏览器

这就是为什么我的代码赋予Opera和Google Chrome相同的值

我存储用户信息是为了更好的用户体验,当我的用户被告知错误的信息时,这看起来很糟糕

如何在谷歌浏览器和Opera之间保持个性


我所能想到的就是使用用户代理,但它可能是伪造的。

Opera现在使用Chromium/Blink作为基础。为了解决兼容性问题,他们故意这样做。下面是Opera展示的UA字符串示例:

Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.52 Safari/537.36 OPR/15.0.1147.100
然而,Opera和Chrome的区别仍然是可能的,因为Opera将其版本附加到用户代理上,正如您在上面看到的那样


如果您想继续使用PHP的get_browser()函数,您应该等待PHP的更高版本,该版本以本机方式实现对Opera的检测。但是,您也可以编写一个函数来完成这项工作。事实上,get_browser()通过解码HTTP请求头的用户代理字段来工作。

是的,我在前面看到了用户代理之间的差异,作为一种快速的替代方法,我使用
strpos
UA
检测
OPR
。这是我目前唯一能想到的选择。不过,他希望在这方面采取不同的做法+链接为1