要在服务器端识别用户的浏览器,您需要解析
$_SERVER['HTTP_USER_AGENT']
变量... 或者更好的方法是使用
get_browser
函数--请注意,您需要在php.ini中配置一些内容,否则您将会收到这种警告:
Warning: get_browser() [function.get-browser]: browscap ini directive not set
正如PHP手册所述:
注意:为了使其工作,php.ini中的browscap配置设置必须指向系统上browscap.ini文件的正确位置。browscap.ini未捆绑在PHP中,但您可以在此处找到最新的»php_browscap.ini文件。
虽然browscap.ini包含许多浏览器的信息,但它依赖于用户更新以保持数据库的最新状态。文件的格式相当易于理解。
下载该文件并将以下行添加到php.ini:
browscap = /home/squale/developpement/tests/temp/php_browscap.ini
以下是代码部分:
var_dump(get_browser(null, true));
给我:
array
'browser_name_regex' => string '^mozilla/5\.0 (x11; .*linux.*; .*rv:1\.9.*) gecko/.*$' (length=53)
'browser_name_pattern' => string 'Mozilla/5.0 (X11; *Linux*; *rv:1.9*) Gecko/*' (length=44)
'parent' => string 'Mozilla 1.9' (length=11)
'platform' => string 'Linux' (length=5)
'browser' => string 'Mozilla' (length=7)
'version' => string '1.9' (length=3)
'majorver' => string '1' (length=1)
'minorver' => string '9' (length=1)
'alpha' => string '1' (length=1)
'frames' => string '1' (length=1)
'iframes' => string '1' (length=1)
'tables' => string '1' (length=1)
'cookies' => string '1' (length=1)
'javaapplets' => string '1' (length=1)
'javascript' => string '1' (length=1)
'cssversion' => string '2' (length=1)
'supportscss' => string '1' (length=1)
'beta' => string '' (length=0)
'win16' => string '' (length=0)
'win32' => string '' (length=0)
'win64' => string '' (length=0)
'backgroundsounds' => string '' (length=0)
'cdf' => string '' (length=0)
'vbscript' => string '' (length=0)
'activexcontrols' => string '' (length=0)
'isbanned' => string '' (length=0)
'ismobiledevice' => string '' (length=0)
'issyndicationreader' => string '' (length=0)
'crawler' => string '' (length=0)
'aol' => string '' (length=0)
'aolversion' => string '0' (length=1)
在 Firefox 3.5 上;还有:
array
'browser_name_regex' => string '^.*$' (length=4)
'browser_name_pattern' => string '*' (length=1)
'browser' => string 'Default Browser' (length=15)
'version' => string '0' (length=1)
'majorver' => string '0' (length=1)
'minorver' => string '0' (length=1)
'platform' => string 'unknown' (length=7)
'alpha' => string '' (length=0)
....
'aol' => string '' (length=0)
'aolversion' => string '0' (length=1)
在 Linux 版本的 Google Chrome 上,最近版本(4.0.203.2)——考虑到它似乎是某种夜间构建版本,它没有被识别,这很正常...
作为参考,这是它的用户代理字符串:
string 'Mozilla/5.0 (X11
这表明get_
browser
不错,但对于一些最新的测试浏览器可能并不完美 - 不过,我想它应该可以在大多数“常见”的浏览器上正常工作...