【发布时间】:2011-03-02 04:09:35
【问题描述】:
我们如何使用 php 脚本获取浏览器名称和版本信息?
【问题讨论】:
我们如何使用 php 脚本获取浏览器名称和版本信息?
【问题讨论】:
<?php
echo $_SERVER['HTTP_USER_AGENT'];
?>
正如 Palantir 所说,另外看看 get_browser 函数,您还可以在其中检查浏览器中启用的功能。
【讨论】:
【讨论】:
您需要创建函数将用户代理数据转换为浏览器的通用名称
例如,$_SERVER['HTTP_USER_AGENT'] 可以返回
Mozilla/5.0 (Windows; ?; Windows NT 5.1; *rv:*) Gecko/* Firefox/0.9* 是火狐
要么
Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US) AppleWebKit/533.4 (KHTML, like Gecko) Chrome/5.0.375.55 Safari/533.4 是 Chrome
细节为您提供渲染引擎、代码库、版本、操作系统等...
我建议使用 preg_match 和/或已知浏览器列表,您是否想做类似的事情
echo browserCommonName($_SERVER['HTTP_USER_AGENT']);
输出“谷歌浏览器”。
browserCommonName($userAgent) 需要已知浏览器的列表。
编辑:刚刚注意到get_browser 嵌入php 这样做,我不阅读线程不好。
【讨论】:
<?php
echo $_SERVER['HTTP_USER_AGENT'] . "\n\n";
$browser = get_browser(null, true);
print_r($browser);
?>
【讨论】:
总而言之,你不能。你当然可以尝试得到它,而且几乎可以肯定你得到的东西看起来和你想要的一样;但是绝对没有办法检查信息是否正确。当您收到用户代理字符串时,另一端的浏览器可能是真实的,也可能是在撒谎。与用户打交道时,始终假设它实际上是在撒谎。
没有“最好的方法”来解决这个问题,但您最可能想要做的是使用各种浏览器测试您的网站,使用可移植的 HTML 和 CSS 技术,如果您绝对必须,请填补漏洞使用 JavaScript。
根据您认为的浏览器选择要发送到浏览器的数据是一个坏主意™。
【讨论】:
您可以随时查看 php 函数 get_browser http://php.net/manual/en/function.get-browser.php。为此,您需要$_SERVER['HTTP_USER_AGENT']。
您可能还想看看 Chris Schuld 浏览器检测类。 http://chrisschuld.com/projects/browser-php-detecting-a-users-browser-from-php.html
【讨论】: