要识别用户的浏览器服务器端,您必须解析$_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)
在火狐 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; U; Linux x86_64; en-US) AppleWebKit/532.0 (KHTML, like Gecko) Chrome/4.0.203.2 Safari/532.0' (length=109)
这表明 get_ browser is
nice ; 但对于一些尖端的测试浏览器来说可能并不完美——我想仍然应该可以在大多数“常见”浏览器上正常工作......