HTTP_USER_AGENT是用来检查浏览页面的访问者在用什么操作系统(包括版本号)、浏览器(包括版本号)和用户个人偏好的代码。
通过获取微信内置浏览器的User Agent,可以得到用户手机情况及微信版本信息。
经过测试,在iPhone手机下,User Agent类似如下。
Mozilla/5.0 (iPhone; CPU iPhone OS 5_1 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Mobile/9B176 MicroMessenger/5.0.1
在Android手机下,User Agent返回类似如下。
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
从上可知,微信浏览器的关键字为MicroMessenger,其后面的数字代表当前的微信版本号。通过识别是否有iPhone、Android字段,以及MicroMessenger及其后面的数字可以获取微信版本及手机型号。
其实现代码如下。
<?php
$ua = $_SERVER['HTTP_USER_AGENT'];
if(!strpos($ua, 'MicroMessenger')){
$weixin = "不是微信浏览器";
}else{
$preg = "/MicroMessenger\/(.+)/";
preg_match_all($preg, $ua, $new_cnt);
$weixin = "".$new_cnt[1][0]."\n";
}
if(strpos($ua, 'Android')){
$phone = "Android";
}else if(strpos($ua, 'iPhone OS')){
$phone = "iOS";
}else{
$phone = "其他";
}
?>
<!DOCTYPE HTML PUBLIC "-// W3C// DTD HTML 4.0 Transitional// EN">
<HTML>
<HEAD>
<TITLE>方倍工作室</TITLE>
<META charset=utf-8>
<META name=viewport content="width=device-width, user-scalable=no, initial-scale=1">
<link rel="stylesheet" href="http:// code.jquery.com/mobile/1.4.2/jquery.mobile-1.4.2.
min.css" />
<script src="https:// code.jquery.com/jquery-1.9.1.min.js"></script>
<script src="https:// code.jquery.com/mobile/1.4.2/jquery.mobile-1.4.2.min.js">
</script>
</HEAD>
<BODY>
<p data-role="page">
<p data-role="content">
<UL data-role="listview" data-inset="true">
<LI>
<P>
<p>
<label for="userid">微信版本</label>
<input name="userid" type="text" >
</p>
<p>
<label for="openid">手机系统</label>
<input name="openid" type="text" >
</p>
</P>
</LI>
</UL>
</p>
<p data-theme="b" data-role="footer" data-position="fixed">
<h3>方倍工作室</h3>
</p>
</p>
</BODY>
</HTML>
上述代码的运行效果如图23-6所示。
图23-6 获得微信版本与手机系统