一个浏览器检查类

浏览器

一个浏览器检查类

<?php
//原作者:epsilon7
//SonyMusic(sonymusic@163.net)
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."<br>";
echo $test->BROWSER."<br>";
echo $test->PLATFORM."<br>";
echo $test->VERSION."<br>";
echo $test->MAJORVER."<br>";
echo $test->MINORVER."<br>";
?>

时间: 2024-08-04 00:15:49

一个浏览器检查类的相关文章

PHP实现的浏览器检查类_php技巧

本文实例讲述了PHP实现的浏览器检查类.分享给大家供大家参考,具体如下: <?php //原作者:epsilon7 //SonyMusic([email]sonymusic@163.net[/email]) class BrowserDetector { var $UA = ""; //$HTTP_USER_AGENT的内容 var $BROWSER= "Unknown"; //浏览器类型 var $PLATFORM = "Unknown"

php编写的一个E-mail验证类

 这篇文章主要介绍了php编写的一个E-mail验证类的用法,非常的简单实用,需要的小伙伴参考下,可以直接拿走使用.     这个类可以用来检查电子邮件是否有效使用SMTP协议. 它可以连接到由地址的域名来验证的MX记录中定义的SMTP服务器. 并且模拟消息的传递,以查看是否在给定的收件人地址被接受为有效. ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 <!DOCTYPE HTML PUBLIC "-

php身份证号码检查类实例_php技巧

本文实例讲述了php身份证号码检查类.分享给大家供大家参考.具体如下: <?php class CIDMaker // 声明一个身份证号码检查类 { var $id; var $err; var $idx = array(1,1,1,1,1,1,1,1,3,1,1,2,2,2,3,2,2,2,2,2,2,2,3,3,3,3); var $idy = array(0,1,2,3,4,5,6,7,4,8,9,0,1,2,5,3,4,5,6,7,8,9,0,1,2,3); function check

创建一个ASP分页类(一)文章部分

创建|分页 创建一个ASP通用分页类 平波 从开始学习到使用ASP到现在也写了不少程序了,最令人头痛的是写数据分页,每次都是由于几个变量名或几个参数的不同,因而需要每次都写哪一段冗长而又繁杂的分页代码,代码长了使得程序的可读性变差,容易出差,调试半天也找不出错在哪里,所以慢慢的我开始使用一些网上的提供的分页函数或分页类.的确省事不少,但是通常的函数和类的做法都是就数据显示部分也封装了起来,每次为了达到自己需要的显求效果要去改动函数或者类的本身,所以使用起来也不是怎么方便,自己写的分页改起来已经够

php实现读取手机客户端浏览器的类

 这篇文章主要介绍了php实现读取手机客户端浏览器的类,可实现取手机号码,浏览器报头信息,取得手机类型,取得手机IP等功能,需要的朋友可以参考下     本文实例讲述了php实现读取手机客户端浏览器的类.分享给大家供大家参考.具体分析如下: 这里介绍的手机信息函数类有取手机号码,浏览器报头信息,取得手机类型,取得手机IP等功能. 代码如下: <?php /** * 类名: mobile * 描述: 手机信息类 * 其他: 偶然 编写 */   class mobile{ /** * 函数名称:

python使用线程封装的一个简单定时器类实例

  本文实例讲述了python使用线程封装的一个简单定时器类.分享给大家供大家参考.具体实现方法如下: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 from threading import Timer class MyTimer: def __init__(self): self._timer= None self._tm = None self._fn = N

JavaScript实现的一个倒计时的类

 这篇文章主要介绍了JavaScript实现的一个倒计时的类,本文直接给出demo代码,需要的朋友可以参考下     近期在做排列五的彩票项目,每一期都有购彩时段,即用户打开这个排列五的页面时,会从服务器传来一个remaintime(离本次彩期结束的剩余时间),然后这个时间在客户端递减呈现给用户看,让用户获得本次彩期的剩余时间. 实现原理挺简单的,在此不在赘述,运行以下代码查看demo: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 2

flex-写了一个as的类,运行的时候总是提示 Context3D不可用,网上的方法也不行

问题描述 写了一个as的类,运行的时候总是提示 Context3D不可用,网上的方法也不行 解决方案 网上说在XX-app.xml里面加一句gpu,可是我没有这个文件啊,新手求助啊 解决方案二: 写了一个Tip类(AS)

服务器-Android如何在一个异步任务类结束时再次开启一个异步任务类

问题描述 Android如何在一个异步任务类结束时再次开启一个异步任务类 本人Android新手,在学习中遇到了一个难题,希望大神给我一点启发,问题是这样的,我从服务器获取JSON数据进行解析,在onPostExecute中获取了一个图片的URL,当我在onPostExecute进行图片的读取时程序报错,查找了一些资料,说需要在onPostExecute里发送一个消息在开启一个任务类,请问大神,该怎么在onPostExecute里发送一个消息通知线程开启任务类呢? 解决方案 直接在onPostE