您当前的位置:首页 > 分类 > 技术资讯 > PHP > 正文

PHP获取浏览器名称,版本号

发布时间:2014-08-29 10:11:35      来源:51推一把
【摘要】PHP获取浏览器名称,版本号的,比较全面

function get_user_browser()
{
    if (empty($_SERVER[HTTP_USER_AGENT]))
    {    //当浏览器没有发送访问者的信息的时候
        return ;
    }
    $agent       = $_SERVER[HTTP_USER_AGENT];   
    $browser     = ;
    $browser_ver = ;
    if (preg_match(/MSIEs([^s|;]+)/i, $agent, $regs))
    {
        $browser     = Internet Explorer;    //当匹配到了MSIE 的时候,取得数字的那一部分房在数组$regs里
        $browser_ver = $regs[1];
    }
    elseif (preg_match(/FireFox/([^s]+)/i, $agent, $regs))
    {                           
        $browser     = FireFox;                //当匹配到了firefox/的时候,取得后面紧跟的数字部分
        $browser_ver = $regs[1];
    }
    elseif (preg_match(/Maxthon/i, $agent, $regs))
    {
        $browser     = (Internet Explorer .$browser_ver. ) Maxthon;
        $browser_ver = ;
    }
    elseif (preg_match(/Opera[s|/]([^s]+)/i, $agent, $regs))
    {
        $browser     = Opera;
        $browser_ver = $regs[1];
    }
    elseif (preg_match(/OmniWeb/(v*)([^s|;]+)/i, $agent, $regs))
    {
        $browser     = OmniWeb;
        $browser_ver = $regs[2];
    }
    elseif (preg_match(/Netscape([d]*)/([^s]+)/i, $agent, $regs))
    {
        $browser     = Netscape;
        $browser_ver = $regs[2];
    }
    elseif (preg_match(/safari/([^s]+)/i, $agent, $regs))
    {
        $browser     = Safari;
        $browser_ver = $regs[1];
    }
    elseif (preg_match(/NetCaptors([^s|;]+)/i, $agent, $regs))
    {
        $browser     = (Internet Explorer .$browser_ver. ) NetCaptor;
        $browser_ver = $regs[1];
    }
    elseif (preg_match(/Lynx/([^s]+)/i, $agent, $regs))
    {
        $browser     = Lynx;
        $browser_ver = $regs[1];
    }
    if (!empty($browser))
    {
       return addslashes($browser . . $browser_ver);//转义引号
    }
    else
    {
        return Unknow browser;
    }
}
    判断是否为蜘蛛
function is_spider($record = true)    //判断是否为蜘蛛
{
    static $spider = NULL;
    if ($spider !== NULL)
    {
        return $spider;        //
    }
    if (empty($_SERVER[HTTP_USER_AGENT]))
    {
        $spider = ;
        return ;
    }
    $searchengine_bot = array(
        googlebot,
        mediapartners-google,
        baiduspider+,
        msnbot,
        yodaobot,
        yahoo! slurp;,
        yahoo! slurp china;,
        iaskspider,
        sogou web spider,
        sogou push spider
    );
    $searchengine_name = array(
        GOOGLE,
        GOOGLE ADSENSE,
        BAIDU,
        MSN,
        YODAO,
        YAHOO,
        Yahoo China,
        IASK,
        SOGOU,
        SOGOU
    );
    $spider = strtolower($_SERVER[HTTP_USER_AGENT]);    //将用户浏览器信息转成小写
    foreach ($searchengine_bot AS $key => $value)
    {
        if (strpos($spider, $value) !== false)                    //绝对不等于,避免字符串出现为止为0的这种情况
        {
            $spider = $searchengine_name[$key];            //返回对应的搜索引擎名
            return $spider;
        }
    }
    $spider = ;
    return ;
}
 

  获取客户端操作系统
 

function get_os()
{
    if (empty($_SERVER[HTTP_USER_AGENT]))
    {
        return Unknown;
    }
    $agent = strtolower($_SERVER[HTTP_USER_AGENT]);
    $os    = ;
    if (strpos($agent, win) !== false)
    {
        if (strpos($agent, nt 5.1) !== false)
        {
            $os = Windows XP;
        }
        elseif (strpos($agent, nt 5.2) !== false)
        {
            $os = Windows 2003;
        }
        elseif (strpos($agent, nt 5.0) !== false)
        {
            $os = Windows 2000;
        }
        elseif (strpos($agent, nt 6.0) !== false)
        {
            $os = Windows Vista;
        }
        elseif (strpos($agent, nt) !== false)
        {
            $os = Windows NT;
        }
        elseif (strpos($agent, win 9x) !== false && strpos($agent, 4.90) !== false)
        {
            $os = Windows ME;
        }
        elseif (strpos($agent, 98) !== false)
        {
            $os = Windows 98;
        }
        elseif (strpos($agent, 95) !== false)
        {
            $os = Windows 95;
        }
        elseif (strpos($agent, 32) !== false)
        {
            $os = Windows 32;
        }
        elseif (strpos($agent, ce) !== false)
        {
            $os = Windows CE;
        }
    }
    elseif (strpos($agent, linux) !== false)
    {
        $os = Linux;
    }
    elseif (strpos($agent, unix) !== false)
    {
        $os = Unix;
    }
    elseif (strpos($agent, sun) !== false && strpos($agent, os) !== false)
    {
        $os = SunOS;
    }
    elseif (strpos($agent, ibm) !== false && strpos($agent, os) !== false)
    {
        $os = IBM OS/2;
    }
    elseif (strpos($agent, mac) !== false && strpos($agent, pc) !== false)
    {
        $os = Macintosh;
    }
    elseif (strpos($agent, powerpc) !== false)
    {
        $os = PowerPC;
    }
    elseif (strpos($agent, aix) !== false)
    {
        $os = AIX;
    }
    elseif (strpos($agent, hpux) !== false)
    {
        $os = HPUX;
    }
    elseif (strpos($agent, netbsd) !== false)
    {
        $os = NetBSD;
    }
    elseif (strpos($agent, bsd) !== false)
    {
        $os = BSD;
    }
    elseif (strpos($agent, osf1) !== false)
    {
        $os = OSF1;
    }
    elseif (strpos($agent, irix) !== false)
    {
        $os = IRIX;
    }
    elseif (strpos($agent, freebsd) !== false)
    {
        $os = FreeBSD;
    }
    elseif (strpos($agent, teleport) !== false)
    {
        $os = teleport;
    }
    elseif (strpos($agent, flashget) !== false)
    {
        $os = flashget;
    }
    elseif (strpos($agent, webzip) !== false)
    {
        $os = webzip;
    }
    elseif (strpos($agent, offline) !== false)
    {
        $os = offline;
    }
    else
    {
        $os = Unknown;
    }
    return $os;
}