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

<?php 
 echo $_SERVER[\'HTTP_USER_AGENT\'];
?>

返回结果:

Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.109 Safari/537.36

 

那么我们如何从返回的值中获取用户浏览器的信息呢?我们可以写一个函数,然后使用正则表达式提取用户浏览器的类型和信息。

function get_user_browser()
{
    if (empty($_SERVER[\'HTTP_USER_AGENT\']))
    {
        return \'\';
    }
 
    $agent       = $_SERVER[\'HTTP_USER_AGENT\'];
    $browser     = \'\';
    $browser_ver = \'\';
 
    if (preg_match(\'/MSIE\\s([^\\s|;]+)/i\', $agent, $regs))
    {
        $browser     = \'Internet Explorer\';
        $browser_ver = $regs[1];
    }
    elseif (preg_match(\'/FireFox\\/([^\\s]+)/i\', $agent, $regs))
    {
        $browser     = \'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(\'/NetCaptor\\s([^\\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\';
    }
}
收藏 打印