PHP为了准确获得访问用户的浏览器 操作系统信息,以便返回给不同的用户不同的需求,比如不同的IE用户,分别加载不同的CSS文件

1.用户访问服务器时,利用PHP的超级全局变量$_SERVER数组中字段['HTTP_USER_AGENT'] 获取访问用户的所有信息

我访问时的$_SERVER['HTTP_USER_AGENT'] 字符串 :

Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/533.2 (KHTML, like Gecko) Chrome/5.0.342.3 Safari/533.2

2.利用正则表达式匹配以上字符串,用户的浏览器 操作系统信息

3.PHP根据匹配后的字符串(用户的浏览器 操作系统信息),分配需要的CSS文件,JS等等…返回给用户

我的浏览器 操作系统信息

Browser: Chrome 5.0

Platform: Windows 7

代码如下:

<?php

//显示访问用户的浏览器信息
echo 'Browser: ' . determinebrowser($Agent) . '
'; //显示访问用户的操作系统平台 echo 'Platform: ' . determineplatform($Agent). '
'; //正值表达式比对解析$_SERVER['HTTP_USER_AGENT']中的字符串 获取访问用户的浏览器的信息 function determinebrowser ($Agent) { $browseragent=""; //浏览器 $browserversion=""; //浏览器的版本 if (ereg('MSIE ([0-9].[0-9]{1,2})',$Agent,$version)) { $browserversion=$version[1]; $browseragent="Internet Explorer"; } else if (ereg( 'Opera/([0-9]{1,2}.[0-9]{1,2})',$Agent,$version)) { $browserversion=$version[1]; $browseragent="Opera"; } else if (ereg( 'Firefox/([0-9.]{1,5})',$Agent,$version)) { $browserversion=$version[1]; $browseragent="Firefox"; }else if (ereg( 'Chrome/([0-9.]{1,3})',$Agent,$version)) { $browserversion=$version[1]; $browseragent="Chrome"; } else if (ereg( 'Safari/([0-9.]{1,3})',$Agent,$version)) { $browseragent="Safari"; $browserversion=""; } else { $browserversion=""; $browseragent="Unknown"; } return $browseragent." ".$browserversion; } // 同理获取访问用户的浏览器的信息 function determineplatform ($Agent) { $browserplatform==''; if (eregi('win',$Agent) && strpos($Agent, '95')) { $browserplatform="Windows 95"; } elseif (eregi('win 9x',$Agent) && strpos($Agent, '4.90')) { $browserplatform="Windows ME"; } elseif (eregi('win',$Agent) && ereg('98',$Agent)) { $browserplatform="Windows 98"; } elseif (eregi('win',$Agent) && eregi('nt 5.0',$Agent)) { $browserplatform="Windows 2000"; } elseif (eregi('win',$Agent) && eregi('nt 5.1',$Agent)) { $browserplatform="Windows XP"; } elseif (eregi('win',$Agent) && eregi('nt 6.0',$Agent)) { $browserplatform="Windows Vista"; } elseif (eregi('win',$Agent) && eregi('nt 6.1',$Agent)) { $browserplatform="Windows 7"; } elseif (eregi('win',$Agent) && ereg('32',$Agent)) { $browserplatform="Windows 32"; } elseif (eregi('win',$Agent) && eregi('nt',$Agent)) { $browserplatform="Windows NT"; }elseif (eregi('Mac OS',$Agent)) { $browserplatform="Mac OS"; } elseif (eregi('linux',$Agent)) { $browserplatform="Linux"; } elseif (eregi('unix',$Agent)) { $browserplatform="Unix"; } elseif (eregi('sun',$Agent) && eregi('os',$Agent)) { $browserplatform="SunOS"; } elseif (eregi('ibm',$Agent) && eregi('os',$Agent)) { $browserplatform="IBM OS/2"; } elseif (eregi('Mac',$Agent) && eregi('PC',$Agent)) { $browserplatform="Macintosh"; } elseif (eregi('PowerPC',$Agent)) { $browserplatform="PowerPC"; } elseif (eregi('AIX',$Agent)) { $browserplatform="AIX"; } elseif (eregi('HPUX',$Agent)) { $browserplatform="HPUX"; } elseif (eregi('NetBSD',$Agent)) { $browserplatform="NetBSD"; } elseif (eregi('BSD',$Agent)) { $browserplatform="BSD"; } elseif (ereg('OSF1',$Agent)) { $browserplatform="OSF1"; } elseif (ereg('IRIX',$Agent)) { $browserplatform="IRIX"; } elseif (eregi('FreeBSD',$Agent)) { $browserplatform="FreeBSD"; } if ($browserplatform=='') {$browserplatform = "Unknown"; } return $browserplatform; } ?>

14 Responses to “PHP获取用户的浏览器 操作系统信息”

  1. Arni Czech Republic Czech Republic Mozilla Mozilla 1.9.1.3 Windows Windows 7
    六月 5th, 2010 01:46

    Good work, thanks.

    回复
  2. hzz1989 China China Internet Explorer Internet Explorer 8.0 Windows Windows 7
    十一月 16th, 2010 09:52

    很好,学习了……

    回复
  3. 裂帛女装 China China Internet Explorer Internet Explorer 6.0 Windows Windows XP
    十二月 28th, 2010 14:31

    感谢博主分享!

    回复
  4. 您好 China China Internet Explorer Internet Explorer 6.0 Windows Windows XP
    二月 23rd, 2011 14:37

    头像之家 http://www.touxianghome.com/ 期待能和您做个友情连接 求回复我qq381510016

    回复
  5. 淘宝皇冠店 China China Internet Explorer Internet Explorer 7.0 Windows Windows XP
    六月 7th, 2011 17:27

    好的,学习了,我看到一个博客,他显示评论者的国家,浏览器和操作系统,可能就是这么实现的.我的博客地址是: http://www.taorm.com/blog/ 也是WP博客.

    回复
  6. 习小衣 China China Internet Explorer Internet Explorer 6.0 Windows Windows XP
    七月 11th, 2011 18:10

    感谢博主的大公无私~

    回复
  7. iSolution.me United States United States Mozilla Firefox Mozilla Firefox 6.0.2 Mac OS Mac OS X Lion 10.7
    九月 14th, 2011 16:23

    很好很强大,很牛逼!你是最棒的!

    回复
  8. 代码如诗 China China Google Chrome Google Chrome 13.0.782.112 Windows Windows XP
    九月 18th, 2011 03:49

    代码高亮插件不给力啊, 复制代码送行号啊:(

    回复
  9. 乔永晨 China China Google Chrome Google Chrome 14.0.835.202 Windows Windows XP
    十月 11th, 2011 17:15

    get_browser()不是更方便么

    回复
    • Ben United States United States Google Chrome Google Chrome 16.0.889.0 Windows Windows 7
      十月 11th, 2011 17:26

      我曾尝试使用get_browser(),不过得到的信息不准确甚至是空白(主要是因为现在的浏览器更新远远快于PHP),而且还是需要进一步加工…

      回复
    • dongfangling United States United States Mozilla Firefox Mozilla Firefox 7.0.1 Windows Windows 7
      十月 12th, 2011 16:14

      get_browser()返回以下信息,都是空的!!!
      [browser] => Default Browser
      [version] => 0
      [majorver] => 0
      [minorver] => 0
      [platform] => unknown
      [alpha] =>
      [beta] =>
      [win16] =>
      [win32] =>
      [win64] =>
      [frames] => 1
      [iframes] =>
      [tables] => 1
      [cookies] =>

      回复
  10. php United States United States Google Chrome Google Chrome 16.0.912.75 Windows Windows 7
    10¥ 一月 31st, 2012 09:56

    try

    回复
  11. php5.3 China China Google Chrome Google Chrome 16.0.912.21 Windows Windows 7
    11¥ 一月 31st, 2012 22:41

    php5.3了,该升级就升级了。。。

    回复

Leave a Reply