根據UA簡單判斷訪客客戶端是手機移動端還是電腦PC端
畢竟手機端的UA太多也太雜亂了,一個個去找太蛋疼,索性從別人PHP判斷手機端還是PC端的函式程式碼抄襲過來了,先附上Golang程式碼然後附上再PHP程式碼。
Golang程式碼:
package main
import (
"fmt"
"strings"
)
func main() {
ua_pc := "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.75 Safari/537.36"
ua_mobile := "Mozilla/5.0 (iPhone; CPU iPhone OS 9_1 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Version/9.0 Mobile/13B143 Safari/601.1"
fmt.Println("手機端?", Client(ua_pc))
fmt.Println("手機端?", Client(ua_mobile))
}
//根據ua判斷訪客是手機端還是PC端訪問
//手機端返回true,否則返回false,預設返回false,即PC端
func Client(ua string) bool {
ua = strings.ToLower(ua)
//常見的手機端UA判斷,有即預設為手機端 pad、phone關鍵字替代ipad,iphone,apad等
mobile := []string{"mobile", "phone", "android", "pad", "pod", "symbian", "wap", "smartphone", "apk", "ios"}
for _, m := range mobile {
if strings.Contains(ua, m) {
return true
}
}
//生僻的不常見的UA判斷
mbstr := "w3c,acs-,alav,alca,amoi,audi,avan,benq,bird,blac"
mbstr += "blaz,brew,cell,cldc,cmd-,dang,doco,eric,hipt,inno"
mbstr += "ipaq,java,jigs,kddi,keji,leno,lg-c,lg-d,lg-g,"
mbstr += "maui,maxo,midp,mits,mmef,mobi,mot-,moto,mwbp,"
mbstr += "newt,noki,oper,palm,pana,pant,phil,play,port,prox"
mbstr += "qwap,sage,sams,sany,sch-,sec-,send,seri,sgh-,shar"
mbstr += "sie-,siem,smal,smar,sony,sph-,symb,t-mo,teli,"
mbstr += "tosh,tsm-,upg1,upsi,vk-v,voda,wap-,wapa,wapi,wapp"
mbstr += "wapr,webc,winw,winw,xda,xda-,up.browser,up.link,mmp,midp,xoom"
slice := strings.Split(mbstr, ",")
for _, m := range slice {
if strings.Contains(ua, m) {
return true
}
}
return false
}
PHP程式碼:
/**
* 檢測是否是手機端
* @return boolean */
function is_mobile(){
$_SERVER['ALL_HTTP'] = isset($_SERVER['ALL_HTTP']) ? $_SERVER['ALL_HTTP'] : '';
$mobile_browser = '0';
if(preg_match('/(up.browser|up.link|mmp|symbian|smartphone|midp|wap|phone|iphone|ipad|ipod|android|xoom)/i', strtolower($_SERVER['HTTP_USER_AGENT'])))
$mobile_browser++;
if((isset($_SERVER['HTTP_ACCEPT'])) and (strpos(strtolower($_SERVER['HTTP_ACCEPT']),'application/vnd.wap.xhtml+xml') !== false))
$mobile_browser++;
if(isset($_SERVER['HTTP_X_WAP_PROFILE']))
$mobile_browser++;
if(isset($_SERVER['HTTP_PROFILE']))
$mobile_browser++;
$mobile_ua = strtolower(substr($_SERVER['HTTP_USER_AGENT'],0,4));
$mobile_agents = array(
'w3c ','','alav','alca','amoi','audi','avan','benq','bird','blac',
'blaz','brew','cell','cldc','','dang','doco','eric','hipt','inno',
'ipaq','java','jigs','kddi','keji','leno','lg-c','lg-d','lg-g','',
'maui','maxo','midp','mits','mmef','mobi','','moto','mwbp','',
'newt','noki','oper','palm','pana','pant','phil','play','port','prox',
'qwap','sage','sams','sany','','','send','seri','','shar',
'','siem','smal','smar','sony','','symb','t-mo','teli','',
'tosh','','upg1','upsi','vk-v','voda','','wapa','wapi','wapp',
'wapr','webc','winw','winw','xda',''
);
if(in_array($mobile_ua, $mobile_agents)) $mobile_browser++;
if(strpos(strtolower($_SERVER['ALL_HTTP']), 'operamini') !== false) $mobile_browser++;
// Pre-final check to reset everything if the user is on Windows
if(strpos(strtolower($_SERVER['HTTP_USER_AGENT']), 'windows') !== false) $mobile_browser=0;
// But WP7 is also Windows, with a slightly different characteristic
if(strpos(strtolower($_SERVER['HTTP_USER_AGENT']), 'windows phone') !== false) $mobile_browser++;
if($mobile_browser>0) return true;
return false;
}
相關文章
- PHP判斷是手機移動端訪問還是PC端訪問的函式PHP函式
- PHP判斷是手機端還是PC端PHP
- JS 判斷客戶端是iOS還是AndroidJS客戶端iOSAndroid
- 判斷客戶端是微信,還是支付寶客戶端
- JavaScript判斷手機、平板電腦客戶端程式碼JavaScript客戶端
- 雲伺服器ASP判斷客戶端是手機或電腦程式碼伺服器客戶端
- PHP判斷是否手機端或PC端訪問PHP
- 根據手機還是電腦上網自動判斷跳轉程式碼
- PHP判斷訪客是否移動端瀏覽器訪問PHP瀏覽器
- 判斷客戶端是iOS還是Android,判斷是不是在微信瀏覽器開啟客戶端iOSAndroid瀏覽器
- 區分是移動端還是pc端訪問網站的程式碼網站
- js 判斷是手機訪問,還是pc訪問JS
- 判斷手機和平板電腦客戶端進行相應跳轉的程式碼客戶端
- 如何判斷是手機還是電腦訪問網站網站
- VNC客戶端是Windows,VNC客戶端是Windows如何進行操作VNC客戶端Windows
- 中斷客戶端客戶端
- 什麼是客戶端渲染?客戶端
- pc端跳轉到移動端的判斷程式碼
- WebSocket簡單使用(二)-客戶端Web客戶端
- Nginx根據PC端和手機端跳轉不同的路徑Nginx
- HTTP客戶端連線,選擇HttpClient還是OkHttp?HTTP客戶端client
- nginx 判斷移動端或者 PC 端 進入不同專案Nginx
- 移動端圖片開啟及返回客戶端客戶端
- 遠端客戶端 訪問 ASM 例項客戶端ASM
- Java OAuth 2.0 客戶端程式設計(二): 客戶端憑據授權JavaOAuth客戶端程式設計
- PC客戶端軟體升級方式簡史客戶端
- 判斷手機還是電腦登陸程式碼
- JSF/JAVA 根據IP獲取客戶端Mac地址JSJava客戶端Mac
- 判斷訪問網頁的是移動裝置還是pc裝置網頁
- ElasticSearch客戶端簡單操作例項Elasticsearch客戶端
- github客戶端fork的簡單教程Github客戶端
- C# 判斷客戶端是否禁用Cookie的方法C#客戶端Cookie
- 移動端的判斷
- 客戶端,服務端客戶端服務端
- 服務端,客戶端服務端客戶端
- php判斷終端型別(手機與pc)PHP型別
- 傳入http請求的UserAgent 根據它判斷是手機還是電腦傳送過來的請求HTTP
- PC客戶端安全測試服務客戶端