如何将“谷歌浏览器”检测为使用PHP的用户代理?

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


答案 1

在这一点上,太多的浏览器假装是Chrome,以便利用其受欢迎程度以及打击滥用浏览器检测功能,以使“Chrome”的简单匹配不再有效。我建议将来进行功能检测,但是Chrome(以及一般的WebKit / Blink)也因在功能检测机制上撒谎而臭名昭着,所以即使这样也不再那么好。

我只能建议通过第三方网站将其已知的UA字符串与其他浏览器的UA字符串进行比较,并从那里创建模式来保持领先地位。如何执行此操作完全取决于字符串本身。请记住,由于浏览器和UA字符串的性质,永远不会有“可靠”的正则表达式来匹配它们。

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


答案 2

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

if (strpos($_SERVER['HTTP_USER_AGENT'], 'Chrome') !== false
 || strpos($_SERVER['HTTP_USER_AGENT'], 'CriOS') !== false) {
    // User agent is Google Chrome
}

推荐