讀古今文學網 > 微信公眾平台開發:從零基礎到ThinkPHP5高性能框架實踐 > 23.3 獲取微信版本及手機系統 >

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 獲得微信版本與手機系統