首页 » 微信公众平台开发:从零基础到ThinkPHP5高性能框架实践 » 微信公众平台开发:从零基础到ThinkPHP5高性能框架实践全文在线阅读

《微信公众平台开发:从零基础到ThinkPHP5高性能框架实践》23.3 获取微信版本及手机系统

关灯直达底部

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