我搜索过这个,我发现的一切都超出了我的需要.我以前在JavaScript中做过这个,但我更喜欢使用PHP.我将如何向访问者显示消息,具体取决于他们使用的浏览器?
例:
IE用户会看到:"你正在使用Internet Explorer"
Firefox用户会看到:"你正在使用Mozilla Firefox"
除了IE,Firefox,Chrome,Safari和Opera之外,我还不确定是否还有其他主流浏览器.但我至少希望单独向每个浏览器发送一条消息.谢谢.
要识别用户的浏览器服务器端,您必须解析$_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)
最近版本(4.0.203.2)的谷歌浏览器Linux版本 - 嗯,考虑到它是某种夜间版本,我认为这是正常的,它是不被认可的...
作为参考,这是它的用户代理字符串:
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; 但对于一些先进的测试浏览器来说可能并不完美 - 但是,对于大多数"常见"浏览器,它应该可以正常工作,我想......