【发布时间】:2016-05-08 07:59:08
【问题描述】:
我正在使用这个preg_match 字符串
preg_match('/Trident/7.0; rv:11.0/',$_SERVER["HTTP_USER_AGENT"]
检测 IE11,以便我可以为其启用平板电脑模式。但是它返回“未知分隔符 7”。
如果 PHP 不抱怨我,我该如何做到这一点?
【问题讨论】:
-
这只是告诉你它是 IE11,而不是平板电脑,甚至是触控设备。奇怪的是,访问该页面的 IE11 桌面用户比平板电脑用户多得多。为没有触摸屏的桌面用户启用平板电脑模式会产生什么后果?
-
很惊讶没有人能打败我,但请不要浏览器检测。这是一个非常坏的习惯。相反,我建议您尝试响应式设计技术和功能检测来构建您的应用程序。 FWIW 我曾经在移动和桌面专用网站的阵营中工作。但这很快就变成了大规模的维护等等。首先启动移动设备,然后横向扩展。这比您想象的要容易。
-
@ChrisLove,不,因为 google 使用浏览器检测,msn 和 microsoft.com 也是如此。那我为什么不呢?
-
如果 Google 跳下金门,你应该这样做吗?你必须意识到像微软和谷歌这样的大型组织并没有完全遵循最佳实践。我使用浏览器检测来确定访问者是否使用过时的浏览器。如果是这样,我会为他们提供一个没有 JavaScript 的核心站点。但是,即使这些天,当前的浏览器也很漂亮。根据我近 4 年来尝试解决移动客户端设计的经验,仍然推荐一种响应式、移动优先的方法作为完整的解决方案。
标签: php preg-match internet-explorer-11