您的位置:首页 > 理论基础 > 计算机网络

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

2017-04-05 19:22 381 查看
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等等…返回给用户

我的浏览器 操作系统信息

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"]。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: