在PHP中HTTP_USER_AGENT是用来获取用户的相关信息的,包括用户使用的浏览器,操作系统等信息, <?php echo $_SERVER['HTTP_USER_AGENT']; ?> 显示结果为: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36 这个时候我们可以用正则表达式来匹配以上字符串,用户的浏览器,操作系统信息 php根据匹配后的结果,分配需要的CSS文件,JS等

//显示访问用户的浏览器信息
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;
      }
   }