当前位置:  开发笔记 > 编程语言 > 正文

PHP - 向某些浏览器显示消息

如何解决《PHP-向某些浏览器显示消息》经验,为你挑选了1个好方法。

我搜索过这个,我发现的一切都超出了我的需要.我以前在JavaScript中做过这个,但我更喜欢使用PHP.我将如何向访问者显示消息,具体取决于他们使用的浏览器?

例:

IE用户会看到:"你正在使用Internet Explorer"

Firefox用户会看到:"你正在使用Mozilla Firefox"

除了IE,Firefox,Chrome,Safari和Opera之外,我还不确定是否还有其他主流浏览器.但我至少希望单独向每个浏览器发送一条消息.谢谢.



1> Pascal MARTI..:

要识别用户的浏览器服务器端,您必须解析$_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 isnice; 但对于一些先进的测试浏览器来说可能并不完美 - 但是,对于大多数"常见"浏览器,它应该可以正常工作,我想......

推荐阅读
ifx0448363
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有