我一直在寻找一种可靠的方式(至少不那么模糊):
我想根据这些信息显示自定义内容,例如:
如果用户想知道如何清除浏览器上的cookie。 假设我有很多内容已经可用于许多浏览器。 我希望自动加载适当的内容
有没有办法让Javascript无法获取这些值?
我遇到未找到或不准确浏览器的情况。所以我想拥有最可靠的解决方案。
以下是2个完全符合我需要的网站:
部分解决方案的其他链接:
花了很多天尝试,搜索,但没有成功。我在Stackoverflow社区找到了许多提示:
其他有用的链接:
编辑1 到目前为止,我已经测试了答案和评论。这些解决方案非常令人满意:
WURFL 不太近但非常好。 (感谢@Ian Roberts)
编辑2 PHP移动检测使用WURFL
更新
确保您收到的标题未被任何其他库修改。
例如, OWASP PhpSec [ABANDONED] 等一些安全库会将标题结构更改为自定义对象 PHP mobile detect 无法访问所需的所有信息
对于那些使用 OWASP PhpSec [ABANDONED] 的人, http库正在修改全局标题对象结构。 (2013年12月)如果您遇到问题,请在使用 http库包含任何 PHP mobile detect 类之前使用 OWASP PhpSec >
答案 0 :(得分:3)
您考虑过WURFL了吗?它的主要目的是对移动设备浏览器进行分类,但它声称有一种识别桌面浏览器的模式。
答案 1 :(得分:0)
您从get_browser()获得的PHP中的浏览器信息
因此您可以使用A Ajax调用PHP站点,提供有关用户代理的信息
e.g。
PHP
$info = get_browser(null, true);
echo json_encode($info);
get_browser提供的数组看起来像
Array
(
[browser_name_regex] => ^mozilla/5\.0 (windows; .; windows nt 5\.1; .*rv:.*) gecko/.* firefox/0\.9.*$
[browser_name_pattern] => Mozilla/5.0 (Windows; ?; Windows NT 5.1; *rv:*) Gecko/* Firefox/0.9*
[parent] => Firefox 0.9
[platform] => WinXP
[browser] => Firefox
[version] => 0.9
[majorver] => 0
[minorver] => 9
[cssversion] => 2
[frames] => 1
[iframes] => 1
[tables] => 1
[cookies] => 1
[backgroundsounds] =>
[vbscript] =>
[javascript] => 1
[javaapplets] => 1
[activexcontrols] =>
[cdf] =>
[aol] =>
[beta] => 1
[win16] =>
[crawler] =>
[stripper] =>
[wap] =>
[netclr] =>
)
这当然不是一个可靠的解决方案,因为您可以根据需要更改浏览器字符串。