本文給大家分享的是一則php判斷是否移動端訪問的函數,是之前收藏的,這里發出來,推薦給小伙伴們。
忘記在哪里獲取的函數了,剛才不了心在一個包里面找到,臨時保存起來,代碼如下:
- /**
- * 是否移動端訪問訪問
- *
- * @return bool
- */
- 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;
- }
- // 腦殘法,判斷手機發送的客戶端標志,兼容性有待提高
- 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;
- }
非常簡單實用的函數,分享給大家,希望大家能夠喜歡。
新聞熱點
疑難解答