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 获得微信版本与手机系统