php $_SERVER['HTTP_USER_AGENT'] 用法介绍
Posted 闻道先后,术业专攻
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php $_SERVER['HTTP_USER_AGENT'] 用法介绍相关的知识,希望对你有一定的参考价值。
在php中HTTP_USER_AGENT是用来获取用户的相关信息的,包括用户使用的浏览器,操作系统等信息,
显示结果为:
Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (Khtml, like Gecko) Chrome/53.0.2785.104 Safari/537.36 Core/1.53.2372.400 QQBrowser/9.5.10548.400
这个时候我们可以用正则表达式来匹配以上字符串,用户的浏览器,操作系统信息
php根据匹配后的结果,分配需要的CSS文件,JS等
<?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;
}
?>
判断浏览器类型主要是靠分析_SERVER["HTTP_USER_AGENT"]的内容,而分析浏览器语言则是分析_SERVER["HTTP_ACCEPT_LANGUAGE"]。
一般我们可以判断用户当前是否是在微信端中打开 可以如下判断
private function is_wx_pro() {
$user_agent = $_SERVER[\'HTTP_USER_AGENT\'];
if (strpos($user_agent, \'MicroMessenger\') === false) {
// 非微信浏览器禁止浏览
return false;
} else {
// 微信浏览器,允许访问
preg_match(\'/.*?(MicroMessenger\\/([0-9.]+))\\s*/\', $user_agent, $matches);//echo "MicroMessenger";
echo \'<br>Version:\'.$matches[2];// 获取版本号
return true;
}
}
以上是关于php $_SERVER['HTTP_USER_AGENT'] 用法介绍的主要内容,如果未能解决你的问题,请参考以下文章
$_SERVER变量 以及 PHP 使用 $_SERVER['PHP_SELF'] 获取当前页面地址及其安全性问题
PHP $_SERVER['SCRIPT_FILENAME'] 与 __FILE__ 的区别
php` $ _SERVER ['PHP_SELF']`是空的
php time() 和 $_SERVER['REQUEST_TIME']