首页 > php开发 > php $_SERVER['HTTP_USER_AGENT'] 用法介绍

php $_SERVER['HTTP_USER_AGENT'] 用法介绍

在php中HTTP_USER_AGENT是用来获取用户相关信息,包括了用户浏览器,操作系统工程,是否安装了alex toolbar条哦,等信息,有需要了解的朋友可参考.

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

实例代码如下:

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

输出结果

Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 2.0.50727; InfoPath.2; AskTbPTV/5.17.0.25589; Alexa Toolbar)

2.利用正则表达式匹配以上字符串,用户的浏览器 操作系统信息

3.PHP根据匹配后的字符串(用户的浏览器 操作系统信息),分配需要的CSS文件,JS等等&hellip;返回给用户

我的浏览器 操作系统信息

Browser: Chrome 5.0

Platform: Windows 7

实例代码如下:

<?php
//显示访问用户的浏览器信息
echo 'Browser: ' . determinebrowser($Agent) . '<BR>';
//显示访问用户的操作系统平台
echo 'Platform: ' . determineplatform($Agent) . '<BR>';
//正值表达式比对解析$_SERVER['HTTP_USER_AGENT']中的字符串 获取访问用户的浏览器的信息
function determinebrowser($Agent) {
    $browseragent = ""; //浏览器
    $browserversion = ""; //浏览器的版本
    if (ereg('MSIE ([0-9].[0-9]{1,2})', $Agent, $version)) {
        $browserversion = $version[1];
        $browseragent = "Internet Explorer";
    } else if (ereg('Opera/([0-9]{1,2}.[0-9]{1,2})', $Agent, $version)) {
        $browserversion = $version[1];
        $browseragent = "Opera";
    } else if (ereg('Firefox/([0-9.]{1,5})', $Agent, $version)) {
        $browserversion = $version[1];
        $browseragent = "Firefox";
    } else if (ereg('Chrome/([0-9.]{1,3})', $Agent, $version)) {
        $browserversion = $version[1];
        $browseragent = "Chrome";
    } else if (ereg('Safari/([0-9.]{1,3})', $Agent, $version)) {
        $browseragent = "Safari";
        $browserversion = "";
    } else {
        $browserversion = "";
        $browseragent = "Unknown";
    }
    return $browseragent . " " . $browserversion;
}
// 同理获取访问用户的浏览器的信息
function determineplatform($Agent) {
    $browserplatform == '';
    if (eregi('win', $Agent) && strpos($Agent, '95')) {
        $browserplatform = "Windows 95";
    } elseif (eregi('win 9x', $Agent) && strpos($Agent, '4.90')) {
        $browserplatform = "Windows ME";
    } elseif (eregi('win', $Agent) && ereg('98', $Agent)) {
        $browserplatform = "Windows 98";
    } elseif (eregi('win', $Agent) && eregi('nt 5.0', $Agent)) {
        $browserplatform = "Windows 2000";
    } elseif (eregi('win', $Agent) && eregi('nt 5.1', $Agent)) {
        $browserplatform = "Windows XP";
    } elseif (eregi('win', $Agent) && eregi('nt 6.0', $Agent)) {
        $browserplatform = "Windows Vista";
    } elseif (eregi('win', $Agent) && eregi('nt 6.1', $Agent)) {
        $browserplatform = "Windows 7";
    } elseif (eregi('win', $Agent) && ereg('32', $Agent)) {
        $browserplatform = "Windows 32";
    } elseif (eregi('win', $Agent) && eregi('nt', $Agent)) {
        $browserplatform = "Windows NT";
    } elseif (eregi('Mac OS', $Agent)) {
        $browserplatform = "Mac OS";
    } elseif (eregi('linux', $Agent)) {
        $browserplatform = "Linux";
    } elseif (eregi('unix', $Agent)) {
        $browserplatform = "Unix";
    } elseif (eregi('sun', $Agent) && eregi('os', $Agent)) {
        $browserplatform = "SunOS";
    } elseif (eregi('ibm', $Agent) && eregi('os', $Agent)) {
        $browserplatform = "IBM OS/2";
    } elseif (eregi('Mac', $Agent) && eregi('PC', $Agent)) {
        $browserplatform = "Macintosh";
    } elseif (eregi('PowerPC', $Agent)) {
        $browserplatform = "PowerPC";
    } elseif (eregi('AIX', $Agent)) {
        $browserplatform = "AIX";
    } elseif (eregi('HPUX', $Agent)) {
        $browserplatform = "HPUX";
    } elseif (eregi('NetBSD', $Agent)) {
        $browserplatform = "NetBSD";
    } elseif (eregi('BSD', $Agent)) {
        $browserplatform = "BSD";
    } elseif (ereg('OSF1', $Agent)) {
        $browserplatform = "OSF1";
    } elseif (ereg('IRIX', $Agent)) {
        $browserplatform = "IRIX";
    } elseif (eregi('FreeBSD', $Agent)) {
        $browserplatform = "FreeBSD";
    }
    if ($browserplatform == '') {
        $browserplatform = "Unknown";
    }
    return $browserplatform;
}
?>

判断浏览器语言的具体程序如下,实例代码如下:

<?php
$lang = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 4); //只取前4位,这样只判断最优先的语言.如果取前5位,可能出现en,zh的情况,影响判断.
if (preg_match("/zh-c/i", $lang)) echo "简体中文";
else if (preg_match("/zh/i", $lang)) echo "繁?中文";
else if (preg_match("/en/i", $lang)) echo "English";
else if (preg_match("/fr/i", $lang)) echo "French";
else if (preg_match("/de/i", $lang)) echo "German";
else if (preg_match("/jp/i", $lang)) echo "Japanese";
else if (preg_match("/ko/i", $lang)) echo "Korean";
else if (preg_match("/es/i", $lang)) echo "Spanish";
else if (preg_match("/sv/i", $lang)) echo "Swedish";
else echo $_SERVER["HTTP_ACCEPT_LANGUAGE"];
?>

判断浏览器类型主要是靠分析_SERVER["HTTP_USER_AGENT"]的内容,而分析浏览器语言则是分析_SERVER["HTTP_ACCEPT_LANGUAGE"].

教程链接:http://www.phprm.com/develop/fs1803.html

随意转载~但请保留教程地址★

标签:用法 http_user_agent $_server[

相关文章

发表留言