判斷當前訪問的使用者是 PC端 還是 手機端
/**
* 判斷當前訪問的使用者是 PC端 還是 手機端 返回true 為手機端 false 為PC 端
* @return boolean
*/
function is_mobile()
{
// 如果有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;
}
// 腦殘法,判斷手機傳送的客戶端標誌,相容性有待提高
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');
// 從HTTP_USER_AGENT中查詢手機瀏覽器的關鍵字
if (preg_match("/(" . implode('|', $clientkeywords) . ")/i", strtolower($_SERVER['HTTP_USER_AGENT'])))
return true;
}
// 協議法,因為有可能不準確,放到最後判斷
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;
}
相關文章
- PHP判斷是手機移動端訪問還是PC端訪問的函式PHP函式
- js 判斷是手機訪問,還是pc訪問JS
- vue 判斷使用者處於手機還是PCVue
- 判斷在移動端還是PC開啟
- 【ASP】判斷是否是手機訪問
- 如何判斷頁面是pc端還是移動端,進入不同的頁面
- JS判斷當前裝置是 PC IOS AndriodJSiOS
- JS 判斷客戶端是iOS還是AndroidJS客戶端iOSAndroid
- Middleware 判斷當前是否手機端瀏覽器,並跳轉到手機端的介面瀏覽器
- php判斷終端型別(手機與pc)PHP型別
- 判斷客戶端是iOS還是Android,判斷是不是在微信瀏覽器開啟客戶端iOSAndroid瀏覽器
- ionic-判斷是裝置時手機還是平板(iPad,tablet)iPad
- 雲伺服器ASP判斷客戶端是手機或電腦程式碼伺服器客戶端
- JAVA關於判斷年份是閏年還是平年的問題Java
- 判斷使用的是 x11 還是 wayland
- 通過ABAP程式碼判斷當前系統型別,BYD還是S4 OP還是S4 Cloud型別Cloud
- 判斷使用者是用什麼瀏覽器或者手機瀏覽器
- nginx 判斷移動端或者 PC 端 進入不同專案Nginx
- REDHAT中如何判斷主機的CPU是32位還是64位的Redhat
- 遠端訪問技術是什麼
- fastjson判斷JSON字串是Object還是List<Object>ASTJSON字串Object
- Windos bat批處理指令碼,判斷是終端命令列執行,還是雙擊執行BAT指令碼命令列
- cv2 判斷圖片是冷還是暖
- python 判斷變數是數字型還是字元型Python變數字元
- 移動端的判斷
- JavaScript判斷手機、平板電腦客戶端程式碼JavaScript客戶端
- Linux下判斷磁碟是SSD還是HDD的3種方法Linux
- C語言的判斷機器的大小端C語言
- windows 之醬紫判斷是UEFI還是legacy啟動Windows
- 模擬ip訪問(附模擬手機訪問)遠端地址
- 微軟是如何解決 PC 端程式多開問題的微軟
- 解讀什麼是遠端訪問技術
- 傳入http請求的UserAgent 根據它判斷是手機還是電腦傳送過來的請求HTTP
- 判斷電腦的大小端
- 判斷javaScript變數是Ojbect型別還是Array型別JavaScript變數型別
- React 移動端判斷使用者劃屏方向React
- 解決手機端和 PC 端跳轉不同頁面
- Nginx根據PC端和手機端跳轉不同的路徑Nginx