概述:
在微信公众平台的开发过程中,有时候要求访问者是来自微信浏览器而不允许其他浏览器的,本文将介绍如何用JavaScript或者PHP处理。
准备:
一、$_SERVER数组
$_SERVER 是一个包含了诸如头信息(header)、路径(path)、以及脚本位置(script locations)等等信息的数组。这个数组中的项目由 Web 服务器创建。不能保证每个服务器都提供全部项目;服务器可能会忽略一些。
(PS:具体更多的$_SERVER介绍可以到以下链接:
http://php.net/manual/zh/reserved.variables.server.php)
二、获取HTTP_USER_AGENT
<?php
echo $_SERVER["HTTP_USER_AGENT"];
?>
在iPhone下,返回内容:
Mozilla/5.0 (iPhone; CPU iPhone OS 5_1 like Mac OS X)
AppleWebKit/534.46 (KHTML, like Gecko) Mobile/9B176
MicroMessenger/4.3.2
在Android下,返回内容:
Mozilla/5.0 (Linux; U; Android 2.3.6; zh-cn; GT-S5660
Build/GINGERBREAD) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0
Mobile Safari/533.1 MicroMessenger/4.5.255
分析:
可以看到,如果是微信浏览器,$_SERVER[“HTTP_USER_AGENT”] 返回的内容带有MicroMessenger,后面还有其版本号,所以我们判断HTTP_USER_AGENT中是否有MicroMessenger即可。除此之外,我们还能根据该变量判断手机类型为iPhone还是Android。
代码处理:
通过 JavaScript 判断:
function is_weixin(){
var ua = navigator.userAgent.toLowerCase();
if(ua.match(/MicroMessenger/i)=="micromessenger") {
return true;
} else {
return false;
}
}
通过 PHP 判断
function is_weixin(){
if ( strpos($_SERVER['HTTP_USER_AGENT'], 'MicroMessenger') !== false ) {
return true;
}
return false;
}