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