一个浏览器检查类

如果您有疑问或建议,请进入技术讨论区交流 >>>

一个浏览器检查类


//原作者:epsilon7
//SonyMusic([email protected])
class BrowserDetector??{
????var $UA =??"";????//$HTTP_USER_AGENT的内容
????var $BROWSER=??"Unknown";????//浏览器类型
????var $PLATFORM???=??"Unknown";????//操作系统
????var $VERSION=??"";????//浏览器版本号
????var $MAJORVER???=??"";????//浏览器主版本号
????var $MINORVER???=??"";????//浏览器副版本号
????/* 构造函数开始 */
????function BrowserDetector(){??
????????$this->UA???=??getenv(HTTP_USER_AGENT);???
????????$preparens??=??"";???
????????$parens =??"";???
????????$i = strpos($this->UA,"(");???
????????if ($i >= 0)???{??
????????????$preparens??= trim(substr($this->UA,0,$i));??
????????????$parens = substr($this->UA,$i+1,strlen($this->UA));??
????????????$j = strpos($parens,")");??
????????????if($j>=0)??{??
????????????????$parens = substr($parens,0,$j);??
????????????}???
????????}???
????????else???{??
????????????$preparens = $this->UA;???
????????}???
????????$browVer =??$preparens;???
????????$token??=??trim(strtok($parens,";"));???
????????while($token)???{??
????????????if($token=="compatible")??{
????????????}??
????????????elseif(preg_match("/MSIE/i","$token"))??{??
????????????????$browVer = $token;??
????????????}??
????????????elseif(preg_match("/Opera/i","$token"))??{??
????????????????$browVer = $token;??
????????????}??
????????????elseif(preg_match("/X11/i","$token") || preg_match("/SunOS/i","$token") || preg_match ("/Linux/i","$token"))??{??
????????????????$this->PLATFORM???=??"Unix";??
????????????}??
????????????elseif(preg_match("/Win/i","$token"))??{??
????????????????$this->PLATFORM???=??$token;??
????????????}??
????????????elseif(preg_match("/Mac/i","$token") || preg_match("/PPC/i","$token"))??{??
????????????????$this->PLATFORM???=??$token;??
????????????}??
????????????$token = strtok(";");???
????????}???
????????$msieIndex??=??strpos($browVer,"MSIE");???
????????if($msieIndex >= 0)???{??
????????????$browVer =??substr($browVer,$msieIndex,strlen($browVer));???
????????}???
????????$leftover???=??"";???
????????if(substr($browVer,0,strlen("Mozilla")) == "Mozilla")???{??
????????????$this->BROWSER =??"Netscape";??
????????????$leftover=substr($browVer,strlen("Mozilla")+1,strlen($browVer));???
????????}???
????????elseif(substr($browVer,0,strlen("Lynx")) == "Lynx")???{??
????????????$this->BROWSER =??"Lynx";??
????????????$leftover=substr($browVer,strlen("Lynx")+1,strlen($browVer));???
????????}???
????????elseif(substr($browVer,0,strlen("MSIE")) == "MSIE") {??
????????????$this->BROWSER =??"IE";??
????????????$leftover=substr($browVer,strlen("MSIE")+1,strlen($browVer));???
????????}???
????????elseif(substr($browVer,0,strlen("Microsoft Internet Explorer")) == "Microsoft Internet??Explorer")???{??
????????????$this->BROWSER =??"IE";??
????????????$leftover=substr($browVer,strlen("Microsoft Internet Explorer")+1,strlen($browVer));???
????????}??
????????elseif(substr($browVer,0,strlen("Opera")) == "Opera")???{??
????????????$this->BROWSER =??"Opera";??
????????????$leftover=substr($browVer,strlen("Opera")+1,strlen($browVer));???
????????}???
????????$leftover = trim($leftover);???
????????$i=strpos($leftover," ");???
????????if($i > 0)???{??
????????????$this->VERSION = substr($leftover,0,$i);???
????????}???
????????else???{??
????????????$this->VERSION = $leftover;???
????????}???
????????$j = strpos($this->VERSION,".");???
????????if($j >= 0)???{??
????????????$this->MAJORVER = substr($this->VERSION,0,$j);??
????????????$this->MINORVER = substr($this->VERSION,$j+1,strlen($this->VERSION));???
????????}???
????????else???{??
????????????$this->MAJORVER = $this->VERSION;???
????????}
????}
}
//测试程序开始
$test=new browserdetector;
echo $test->UA."
";
echo $test->BROWSER."
";
echo $test->PLATFORM."
";
echo $test->VERSION."
";
echo $test->MAJORVER."
";
echo $test->MINORVER."
";
?>
Tags: 

延伸阅读

最新评论

发表评论