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

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

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

Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0)

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

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

 

  1. <?php 
  2.  echo $Agent=$_SERVER['HTTP_USER_AGENT']."<br>";
  3. //显示访问用户的浏览器信息 
  4. echo 'Browser: ' . determinebrowser($Agent) . '<br>'; 
  5. //显示访问用户的操作系统平台 
  6. echo 'Platform: ' . determineplatform($Agent). '<br>'; 
  7.  
  8. //正值表达式比对解析$_SERVER['HTTP_USER_AGENT']中的字符串 获取访问用户的浏览器的信息 
  9. function determinebrowser ($Agent) { 
  10. $browseragent="";   //浏览器 
  11. $browserversion=""; //浏览器的版本 
  12. if (ereg('MSIE ([0-9].[0-9]{1,2})',$Agent,$version)) { 
  13.     $browserversion=$version[1]; 
  14.     $browseragent="Internet Explorer"
  15. } else if (ereg( 'Opera/([0-9]{1,2}.[0-9]{1,2})',$Agent,$version)) { 
  16.  $browserversion=$version[1]; 
  17.     $browseragent="Opera"
  18. } else if (ereg( 'Firefox/([0-9.]{1,5})',$Agent,$version)) { 
  19.  $browserversion=$version[1]; 
  20.     $browseragent="Firefox"
  21. }else if (ereg( 'Chrome/([0-9.]{1,3})',$Agent,$version)) { 
  22.  $browserversion=$version[1]; 
  23.     $browseragent="Chrome"
  24. else if (ereg( 'Safari/([0-9.]{1,3})',$Agent,$version)) { 
  25.     $browseragent="Safari"
  26.     $browserversion=""
  27. else { 
  28. $browserversion=""
  29. $browseragent="Unknown"
  30. return $browseragent." ".$browserversion; 
  31.  
  32. // 同理获取访问用户的浏览器的信息 
  33. function determineplatform ($Agent) { 
  34. $browserplatform=''; 
  35. if (eregi('win',$Agent) && strpos($Agent, '95')) { 
  36. $browserplatform="Windows 95"
  37. elseif (eregi('win 9x',$Agent) && strpos($Agent, '4.90')) { 
  38. $browserplatform="Windows ME"
  39. elseif (eregi('win',$Agent) && ereg('98',$Agent)) { 
  40. $browserplatform="Windows 98"
  41. elseif (eregi('win',$Agent) && eregi('nt 5.0',$Agent)) { 
  42. $browserplatform="Windows 2000"
  43. elseif (eregi('win',$Agent) && eregi('nt 5.1',$Agent)) { 
  44. $browserplatform="Windows XP"
  45. elseif (eregi('win',$Agent) && eregi('nt 6.0',$Agent)) { 
  46. $browserplatform="Windows Vista"
  47. elseif (eregi('win',$Agent) && eregi('nt 6.1',$Agent)) { 
  48. $browserplatform="Windows 7"
  49. elseif (eregi('win',$Agent) && ereg('32',$Agent)) { 
  50. $browserplatform="Windows 32"
  51. elseif (eregi('win',$Agent) && eregi('nt',$Agent)) { 
  52. $browserplatform="Windows NT"
  53. }elseif (eregi('Mac OS',$Agent)) { 
  54. $browserplatform="Mac OS"
  55. elseif (eregi('linux',$Agent)) { 
  56. $browserplatform="Linux"
  57. elseif (eregi('unix',$Agent)) { 
  58. $browserplatform="Unix"
  59. elseif (eregi('sun',$Agent) && eregi('os',$Agent)) { 
  60. $browserplatform="SunOS"
  61. elseif (eregi('ibm',$Agent) && eregi('os',$Agent)) { 
  62. $browserplatform="IBM OS/2"
  63. elseif (eregi('Mac',$Agent) && eregi('PC',$Agent)) { 
  64. $browserplatform="Macintosh"
  65. elseif (eregi('PowerPC',$Agent)) { 
  66. $browserplatform="PowerPC"
  67. elseif (eregi('AIX',$Agent)) { 
  68. $browserplatform="AIX"
  69. elseif (eregi('HPUX',$Agent)) { 
  70. $browserplatform="HPUX"
  71. elseif (eregi('NetBSD',$Agent)) { 
  72. $browserplatform="NetBSD"
  73. elseif (eregi('BSD',$Agent)) { 
  74. $browserplatform="BSD"
  75. elseif (ereg('OSF1',$Agent)) { 
  76. $browserplatform="OSF1"
  77. elseif (ereg('IRIX',$Agent)) { 
  78. $browserplatform="IRIX"
  79. elseif (eregi('FreeBSD',$Agent)) { 
  80. $browserplatform="FreeBSD"
  81. if ($browserplatform=='') {$browserplatform = "Unknown"; } 
  82. return $browserplatform; 
  83.  
  84. ?>