好的,所以我在我的公司 repo 中处理一些代码,我在登录检查中偶然发现了这一点浏览器检测。这几乎专门搜索 MSIE,但如果浏览器版本是,则希望拒绝登录<= 6
。目前这是一个相当有缺陷的概念。看到该方法采用用户代理字符串并删除除版本号之外的所有内容,但是在这种情况下,版本号是一个数字,非常适合版本 1-9 检测。然而,对于 Internet Explorer 10,结果为 1,从而打破了逻辑并使其无用。
所以现在我被困在试图让这个逻辑在很大程度上保持不变,但本质上是为了补偿需要 2 位数字的版本,比如 10+
自从我完成任何特定于版本的浏览器检测以来已经有很长时间了。所以我希望有人可以帮助我稍微调整一下,或者指出我可以在同一个庄园中使用的一些更好/更新的功能。
if (isset($_SERVER['HTTP_USER_AGENT'])) {
$ua = $_SERVER['HTTP_USER_AGENT'];
if (strstr($ua,'MSIE') && substr($ua,strpos($ua,'MSIE')+5,1) <= 6 ) {
return $this->renderMessage(
self::TEXT_LOGIN_FAILED,
'It seems that your browser is currently unsupported. We apologize for any inconveniences. Please switch to another browser and try again.'
);
}
}
以上是我目前正在使用的内容,您可以看到它有点混乱,制作它的人最初并没有想太多。我坚持不想打破它,因为我想保持相似,但如果这有任何意义的话。