我需要檢查請求是否來自手機設備或臺式電腦使用PHP請幫助。謝謝如何檢查請求是否來自手機或電腦在php
13
A
回答
7
MobileESP是全面的,但不錯&易於使用。
11
檢查移動用戶代理$_SERVER['HTTP_USER_AGENT']
。
您應該檢出http://detectmobilebrowser.com/已有的腳本以檢測移動瀏覽器(它只是使用用戶代理)。
+4
+1對於有用的鏈接 – diEcho 2011-03-17 05:40:05
15
我正在使用一項功能來識別我的項目中的移動瀏覽器,它可以檢測幾乎所有主要的移動操作系統和瀏覽器。
function ismobile() {
$is_mobile = '0';
if(preg_match('/(android|up.browser|up.link|mmp|symbian|smartphone|midp|wap|phone)/i', strtolower($_SERVER['HTTP_USER_AGENT']))) {
$is_mobile=1;
}
if((strpos(strtolower($_SERVER['HTTP_ACCEPT']),'application/vnd.wap.xhtml+xml')>0) or ((isset($_SERVER['HTTP_X_WAP_PROFILE']) or isset($_SERVER['HTTP_PROFILE'])))) {
$is_mobile=1;
}
$mobile_ua = strtolower(substr($_SERVER['HTTP_USER_AGENT'],0,4));
$mobile_agents = array('w3c ','acs-','alav','alca','amoi','andr','audi','avan','benq','bird','blac','blaz','brew','cell','cldc','cmd-','dang','doco','eric','hipt','inno','ipaq','java','jigs','kddi','keji','leno','lg-c','lg-d','lg-g','lge-','maui','maxo','midp','mits','mmef','mobi','mot-','moto','mwbp','nec-','newt','noki','oper','palm','pana','pant','phil','play','port','prox','qwap','sage','sams','sany','sch-','sec-','send','seri','sgh-','shar','sie-','siem','smal','smar','sony','sph-','symb','t-mo','teli','tim-','tosh','tsm-','upg1','upsi','vk-v','voda','wap-','wapa','wapi','wapp','wapr','webc','winw','winw','xda','xda-');
if(in_array($mobile_ua,$mobile_agents)) {
$is_mobile=1;
}
if (isset($_SERVER['ALL_HTTP'])) {
if (strpos(strtolower($_SERVER['ALL_HTTP']),'OperaMini')>0) {
$is_mobile=1;
}
}
if (strpos(strtolower($_SERVER['HTTP_USER_AGENT']),'windows')>0) {
$is_mobile=0;
}
return $is_mobile;
}
1
1
http://mobiledetect.net/是另一種輕量級的PHP類,但你薄霧記住,檢查用戶代理是一個很好的,但不完美的方式,這個問題是規則不斷過時和不完整,因此您需要不斷更改檢測代碼。 另外檢查https://modernizr.com/另一種檢測方式。
0
現在,你認爲什麼是「移動設備」?
用戶代理解析器會給出非常好的結果,除了罕見的情況。問題在於,如果您在本地存儲數據,或者如果您在「雲中」使用它,則依賴於正在聯機的服務,您必須不斷更新它們。
最好使用功能檢測庫,例如Modernizr,首次訪問時向您的服務器發送有關瀏覽器功能的信息,並根據瀏覽器可以或不可以執行的操作提供適當的內容。或者甚至更好,委託給Javascript。
0
這是在PHP中完成它的最簡單的方法。
if(stristr($_SERVER['HTTP_USER_AGENT'],'Mobile')){
//Put code here when device is mobile
}else{
//Put code here when device is not a mobile
}
相關問題
- 1. 如何檢查用戶是否在Android中使用平板電腦或手機
- 2. 檢查一個HTTP請求是否來自Android手機或不使用servlet/jsp
- 3. HTML5:檢測您是否在手機或電腦上使用JavaScript?
- 4. 如何檢查Windows設備是手機還是平板電腦?
- 5. Android UIAutomator如何檢查手機或平板電腦
- 6. 如何從電腦重定向? (不是來自手機)
- 7. 檢查請求是否來自iOS上的webview或瀏覽器?
- 8. 檢查相機或麥克風是否連接到電腦
- 9. 我如何檢查Android手機是否正在充電
- 10. 檢測請求是否來自移動
- 11. 如何檢測如果一個Android手機是電腦
- 12. PDA是否屬於智能手機或掌上電腦?
- 13. 如何檢查手機是否連接?
- 14. dojox.mobile.ScreenSizeAware如何檢查當前處於平板電腦或手機模式?
- 15. 如何檢測移動(不是平板電腦)請求?
- 16. 檢查耳機是否在Android手機
- 17. 如何檢查電話是否可以通過手機發送?
- 18. 來自手機的Heroku請求
- 19. Dart如何檢查請求是否是ajax請求
- 20. 請求是否來自iframe?
- 21. 在Django上檢測手機,平板電腦或桌面
- 22. Rails,如何知道請求是否來自本地主機?
- 23. 可靠的方式來檢查設備是手機,平板電腦或機頂盒
- 24. 從平板電腦(htaccess或JavaScript或PHP)中分離手機
- 25. UiAutomator檢測平板電腦與手機
- 26. 檢測手機與平板電腦?
- 27. 如何檢測用戶是否使用手機,平板電腦或臺式機並重定向他們?
- 28. Android:智能手機或平板電腦
- 29. 錯誤與平板電腦或手機
- 30. 如何找到電話API來檢查被叫方手機是否已關機或不
非常感謝所有三個真的幫助完整。 – 2011-03-17 06:00:34