PHP判斷是手機端還是PC端以及PHP判斷是否是微信瀏覽器
1议泵、判斷是否是手機端
function?isMobile() {
??// 如果有HTTP_X_WAP_PROFILE則一定是移動設備
??if?(isset($_SERVER['HTTP_X_WAP_PROFILE'])) {
????return?true;
??}
??// 如果via信息含有wap則一定是移動設備,部分服務商會屏蔽該信息
??if?(isset($_SERVER['HTTP_VIA'])) {
????// 找不到為flase,否則為true
????return?stristr($_SERVER['HTTP_VIA'],?"wap") ? true : false;
??}
??// 腦殘法,判斷手機發(fā)送的客戶端標志,兼容性有待提高。其中'MicroMessenger'是電腦微信
??if?(isset($_SERVER['HTTP_USER_AGENT'])) {
????$clientkeywords?=?array('nokia','sony','ericsson','mot','samsung','htc','sgh','lg','sharp','sie-','philips','panasonic','alcatel','lenovo','iphone','ipod','blackberry','meizu','android','netfront','symbian','ucweb','windowsce','palm','operamini','operamobi','openwave','nexusone','cldc','midp','wap','mobile','MicroMessenger');
????// 從HTTP_USER_AGENT中查找手機瀏覽器的關鍵字
????if?(preg_match("/("?. implode('|',?$clientkeywords) .?")/i",?strtolower($_SERVER['HTTP_USER_AGENT']))) {
??????return?true;
????}
??}
??// 協(xié)議法,因為有可能不準確竿音,放到最后判斷
??if?(isset ($_SERVER['HTTP_ACCEPT'])) {
????// 如果只支持wml并且不支持html那一定是移動設備
????// 如果支持wml和html但是wml在html之前則是移動設備
????if?((strpos($_SERVER['HTTP_ACCEPT'],?'vnd.wap.wml') !== false) && (strpos($_SERVER['HTTP_ACCEPT'],?'text/html') === false || (strpos($_SERVER['HTTP_ACCEPT'],?'vnd.wap.wml') <?strpos($_SERVER['HTTP_ACCEPT'],?'text/html')))) {
??????return?true;
????}
??}
??return?false;
}
判斷是否是微信內置瀏覽器
function?isWeixin() {
??if?(strpos($_SERVER['HTTP_USER_AGENT'],?'MicroMessenger') !== false) {
????return?true;
??}?else?{
????return?false;
??}
}