首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何使用PHP检测"Google Chrome“作为用户代理?

如何使用PHP检测"Google Chrome“作为用户代理?
EN

Stack Overflow用户
提问于 2010-06-16 02:20:11
回答 3查看 41.9K关注 0票数 22

我想知道用户代理是不是在服务器端使用PHP的"Chrome“。是否有一个可靠的正则表达式可以从请求头中解析出用户代理字符串?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-06-16 02:23:58

在这一点上,太多的浏览器都伪装成Chrome,以便利用它的受欢迎程度,以及打击滥用浏览器检测,以便简单地匹配"Chrome“,以使其更有效。我会推荐未来的功能检测,但Chrome (和WebKit/Blink )也因为对功能检测机制撒谎而臭名昭著,所以即使这样也不像人们所说的那样好。

我只能建议通过第三方站点将其已知的UA字符串与其他浏览器的UA字符串进行比较,并从那里创建模式,从而保持对事物的了解。如何做到这一点完全取决于字符串本身。请记住,由于浏览器和UA字符串的性质,永远不可能有一个“可靠的”正则表达式来匹配它们。

在PHP中,相关的服务器变量是$_SERVER['HTTP_USER_AGENT']

票数 31
EN

Stack Overflow用户

发布于 2013-06-03 18:13:02

值得一提的是,如果您还想包含Chrome for iOS,则还需要与"CriOS“匹配:

代码语言:javascript
复制
if (strpos($_SERVER['HTTP_USER_AGENT'], 'Chrome') !== false
 || strpos($_SERVER['HTTP_USER_AGENT'], 'CriOS') !== false) {
    // User agent is Google Chrome
}
票数 20
EN

Stack Overflow用户

发布于 2015-11-15 20:37:37

在@Adams answer的基础上,通过使用useragentstring.comudger.com排除用户代理字符串中带有" Chrome“的一些浏览器,可以更准确地检测Google Chrome:

代码语言:javascript
复制
if(preg_match('/(Chrome|CriOS)\//i',$_SERVER['HTTP_USER_AGENT'])
 && !preg_match('/(Aviator|ChromePlus|coc_|Dragon|Edge|Flock|Iron|Kinza|Maxthon|MxNitro|Nichrome|OPR|Perk|Rockmelt|Seznam|Sleipnir|Spark|UBrowser|Vivaldi|WebExplorer|YaBrowser)/i',$_SERVER['HTTP_USER_AGENT'])){
    // Browser might be Google Chrome
}
票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3047894

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档