首页 > 语言 > PHP > 正文

PHP实现的浏览器检查类

2024-09-04 11:46:53
字体:
来源:转载
供稿:网友

本文实例讲述了PHP实现的浏览器检查类。分享给大家供大家参考,具体如下:

  1. <?php 
  2.  
  3. //原作者:epsilon7 
  4.  
  5. //SonyMusic([email]sonymusic@163.net[/email]) 
  6.  
  7. class BrowserDetector { 
  8.  
  9.  var $UA = "";  //$HTTP_USER_AGENT的内容 
  10.  
  11.  var $BROWSER"Unknown";  //浏览器类型 
  12.  
  13.  var $PLATFORM  = "Unknown";  //操作系统 
  14.  
  15.  var $VERSION"";  //浏览器版本号 
  16.  
  17.  var $MAJORVER  = "";  //浏览器主版本号 
  18.  
  19.  var $MINORVER  = "";  //浏览器副版本号 
  20.  
  21.  /* 构造函数开始 */ 
  22.  
  23.  function BrowserDetector(){ 
  24.  
  25.   $this->UA  = getenv(HTTP_USER_AGENT); 
  26.  
  27.   $preparens = ""
  28.  
  29.   $parens = ""
  30.  
  31.   $i = strpos($this->UA,"("); 
  32.  
  33.   if ($i >= 0)  { 
  34.  
  35.     $preparens = trim(substr($this->UA,0,$i)); 
  36.  
  37.     $parens = substr($this->UA,$i+1,strlen($this->UA)); 
  38.  
  39.     $j = strpos($parens,")"); 
  40.  
  41.     if($j>=0) { 
  42.  
  43.      $parens = substr($parens,0,$j); 
  44.  
  45.     } 
  46.  
  47.   } 
  48.  
  49.   else  { 
  50.  
  51.     $preparens = $this->UA; 
  52.  
  53.   } 
  54.  
  55.   $browVer = $preparens
  56.  
  57.   $token = trim(strtok($parens,";")); 
  58.  
  59.   while($token)  { 
  60.  
  61.     if($token=="compatible") { 
  62.  
  63.     } 
  64.  
  65.     elseif(preg_match("/MSIE/i","$token")) { 
  66.  
  67.      $browVer = $token
  68.  
  69.     } 
  70.  
  71.     elseif(preg_match("/Opera/i","$token")) { 
  72.  
  73.      $browVer = $token
  74.  
  75.     } 
  76.  
  77.     elseif(preg_match("/X11/i","$token") || preg_match("/SunOS/i","$token") || preg_match ("/Linux/i","$token")) { 
  78.  
  79.      $this->PLATFORM  = "Unix"
  80.  
  81.     } 
  82.  
  83.     elseif(preg_match("/Win/i","$token")) { 
  84.  
  85.      $this->PLATFORM  = $token
  86.  
  87.     } 
  88.  
  89.     elseif(preg_match("/Mac/i","$token") || preg_match("/PPC/i","$token")) { 
  90.  
  91.      $this->PLATFORM  = $token
  92.  
  93.     } 
  94.  
  95.     $token = strtok(";"); 
  96.  
  97.   } 
  98.  
  99.   $msieIndex = strpos($browVer,"MSIE"); 
  100.  
  101.   if($msieIndex >= 0)  { 
  102.  
  103.     $browVer = substr($browVer,$msieIndex,strlen($browVer)); 
  104.  
  105.   } 
  106.  
  107.   $leftover  = ""
  108.  
  109.   if(substr($browVer,0,strlen("Mozilla")) == "Mozilla")  { 
  110.  
  111.     $this->BROWSER = "Netscape"
  112.  
  113.     $leftover=substr($browVer,strlen("Mozilla")+1,strlen($browVer)); 
  114.  
  115.   } 
  116.  
  117.   elseif(substr($browVer,0,strlen("Lynx")) == "Lynx")  { 
  118.  
  119.     $this->BROWSER = "Lynx"
  120.  
  121.     $leftover=substr($browVer,strlen("Lynx")+1,strlen($browVer)); 
  122.  
  123.   } 
  124.  
  125.   elseif(substr($browVer,0,strlen("MSIE")) == "MSIE") { 
  126.  
  127.     $this->BROWSER = "IE"
  128.  
  129.     $leftover=substr($browVer,strlen("MSIE")+1,strlen($browVer)); 
  130.  
  131.   } 
  132.  
  133.   elseif(substr($browVer,0,strlen("Microsoft Internet Explorer")) == "Microsoft Internet Explorer")  { 
  134.  
  135.     $this->BROWSER = "IE"
  136.  
  137.     $leftover=substr($browVer,strlen("Microsoft Internet Explorer")+1,strlen($browVer)); 
  138.  
  139.   } 
  140.  
  141.   elseif(substr($browVer,0,strlen("Opera")) == "Opera")  { 
  142.  
  143.     $this->BROWSER = "Opera"
  144.  
  145.     $leftover=substr($browVer,strlen("Opera")+1,strlen($browVer)); 
  146.  
  147.   } 
  148.  
  149.   $leftover = trim($leftover); 
  150.  
  151.   $i=strpos($leftover," "); 
  152.  
  153.   if($i > 0)  { 
  154.  
  155.     $this->VERSION = substr($leftover,0,$i); 
  156.  
  157.   } 
  158.  
  159.   else  { 
  160.  
  161.     $this->VERSION = $leftover
  162.  
  163.   } 
  164.  
  165.   $j = strpos($this->VERSION,"."); 
  166.  
  167.   if($j >= 0)  { 
  168.  
  169.     $this->MAJORVER = substr($this->VERSION,0,$j); 
  170.  
  171.     $this->MINORVER = substr($this->VERSION,$j+1,strlen($this->VERSION)); 
  172.  
  173.   } 
  174.  
  175.   else  { 
  176.  
  177.     $this->MAJORVER = $this->VERSION; 
  178.  
  179.   } 
  180.  
  181.  } 
  182.  
  183.  
  184. //测试程序开始 
  185.  
  186. $test=new browserdetector; 
  187.  
  188. echo $test->UA."<br>"
  189.  
  190. echo $test->BROWSER."<br>"
  191.  
  192. echo $test->PLATFORM."<br>"
  193.  
  194. echo $test->VERSION."<br>"
  195.  
  196. echo $test->MAJORVER."<br>"
  197.  
  198. echo $test->MINORVER."<br>"
  199.  
  200. ?> 

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表