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'] 用法介绍

时间: 2024-08-05 15:56:45

php $_SERVER['HTTP_USER_AGENT'] 用法介绍的相关文章

关于Java中this和super的用法介绍和区别

1.this&super 什么是this,this是自身的一个对象,代表对象本身,可以理解为:指向对象本身的一个指针.当你想要引用当前对象的某种东西,比如当前对象的某个方法,或当前对象的某个成员,你便可以利用this来实现这个目的.要注意的是this只能在类中的非静态方法中使用,静态方法和静态的代码块中绝对不能出现this.his也可作为构造函数来使用.在后面可以看到 而什么是super,可以理解为是指向自己超(父)类对象的一个指针,而这个超类指的是离自己最近的一个父类.super的作用同样是可

(转)常用算法(Algorithm)的用法介绍

2算法部分主要由头文件<algorithm>,<numeric>和<functional>组成. 2<algorithm>是所有STL头文件中最大的一个,其中常用到的功能范围涉及到比较.交换.查找.遍历操作.复制.修改.反转.排序.合并等等. 2<numeric>体积很小,只包括几个在序列上面进行简单数学运算的模板函数,包括加法和乘法在序列上的一些操作. 2<functional>中则定义了一些模板类,用以声明函数对象. 2STL提供

grep过滤用法介绍(一)

grep过滤用法介绍(一) grep主要作用是过滤出指定的行,指定的行满足什么条件,满足的条件我们就可以用一个正则表达式来表示.为了方便下面的实验进行,我们先进行cp /etc/passwd  1.txt 例如:#grep 'root'1.txt,截图如下: 匹配过滤出,有root的行! grep有一个选项很好用: 1.grep --color 'root' 1.txt 标注红色.为了方便使用,我们做一个别名操作,alias cgrep='grep --color'[删除用unalias+别名]

grep过滤用法介绍(二)

grep过滤用法介绍(二) 背景:(1)alias cgrep='grep --color' (2)cp /etc/passwd  1.txt 1. cgrep -n 'root' 1.txt 包含root所在,行数. 2. cgrep -v 'nologin' 1.txt 不包含nologin. 3. cgrep '[0-9]' 1.txt 包含所有0-9中间数字包含任意一个的行. 4. cgrep '[a-zA-Z]' 1.txt 过滤所有字母. 5.cgrep '^[a-z]' 1.txt

Oracle CASE WHEN 用法介绍

Oracle CASE WHEN 用法介绍 1. CASE WHEN 表达式有两种形式 --简单Case函数 CASE sex WHEN '1' THEN '男' WHEN '2' THEN '女' ELSE '其他' END --Case搜索函数 CASEWHEN sex = '1' THEN '男' WHEN sex = '2' THEN '女' ELSE '其他' END 2. CASE WHEN 在语句中不同位置的用法 2.1 SELECT CASE WHEN 用法 SELECT gra

好压(HaoZip)的命令行模式用法介绍

好压压缩软件,又叫“2345好压”,是一款国产的优秀压缩软件,目前是免费的,据官网介绍,该软件永久免费.官网地址:http://haozip.2345.com/ 本文主要对该软件的命令行模式用法进行介绍.目前,压缩软件支持命令行模式的还有winrar,一款国外的优秀老牌压缩软件,winrar的命令行模式请参考我的另一篇博客: WinRAR的命令行模式用法介绍 - Fetty - 博客园  http://www.cnblogs.com/fetty/p/4769279.html 直接奉上我的测试代码

php判断页面来自手机或者微信 $_SERVER[&#39;HTTP_USER_AGENT&#39;]

function is_phone(){ $agent = strtolower($_SERVER['HTTP_USER_AGENT']); //pc请求头信息数组 $pc_arr=array('windows nt','macintosh','ipad','baiduspider','spider'); //如确认为移动端则更改默认值 //没找到pc数组元素时判断为移动端 foreach($pc_arr as $k => $v){ $pc=strpos($agent, $v) ? true :

MyEclipse相关用法介绍

MyEclipse相关用法介绍 ================================================================================ 编辑: Ctrl+Shift+L      显示所有快捷键 Ctrl+K        参照选中的词(Word)快速定位到下一个 Ctrl+Shift+K      参照选中的词(Word)快速定位到上一个 Ctrl+O         快速显示OutLine Ctrl+T        快速显示当前类的

CImageList用法介绍

图像列表控制(CImageList)是相同大小图像的一个集合,每个集合中均以0为图像的索引序号基数,图像列表通常由大图标或位图构成,其中包含透明位图模式.可以利用WINDOWS32位应用程序接口函数API来绘制.建立和删除图像,并能实现增加.删除.替换和拖动图像等操作.图像列表控制提供了控制图像列表的基本方法,这些方法在WINDOWS95及以后版本才能实现. (一)图像控制的对象结构 1.图像控制的数据成员 m_hImageList 连接图像对象的控制句柄 2.图像控制的建立方法 CimageL