標籤:
,用手機訪問PC端WWW網域名稱的時候,自動判斷跳轉到移動端,用電腦訪問M網域名稱手機網站的時候,自動跳轉到PC端,
我們團隊在開發erdaicms二代旅遊CMS網站管理系統的時候(http://www.erdaicms.com),分別開發了PC端和手機端,需要實現,用手機訪問PC端WWW網域名稱的時候,自動判斷跳轉到移動端,用電腦訪問M網域名稱手機網站的時候,自動跳轉到PC端,於是有了下面這個判斷函數:
1 /*移動端判斷*/ 2 function isMobile() 3 { 4 // 如果有HTTP_X_WAP_PROFILE則一定是行動裝置 5 if (isset ($_SERVER[‘HTTP_X_WAP_PROFILE‘])) 6 { 7 return true; 8 } 9 // 如果via資訊含有wap則一定是行動裝置,部分服務商會屏蔽該資訊10 if (isset ($_SERVER[‘HTTP_VIA‘]))11 { 12 // 找不到為flase,否則為true13 return stristr($_SERVER[‘HTTP_VIA‘], "wap") ? true : false;14 } 15 // 腦殘法,判斷手機發送的用戶端標誌,相容性有待提高16 if (isset ($_SERVER[‘HTTP_USER_AGENT‘]))17 {18 $clientkeywords = array (‘nokia‘,19 ‘sony‘,20 ‘ericsson‘,21 ‘mot‘,22 ‘samsung‘,23 ‘htc‘,24 ‘sgh‘,25 ‘lg‘,26 ‘sharp‘,27 ‘sie-‘,28 ‘philips‘,29 ‘panasonic‘,30 ‘alcatel‘,31 ‘lenovo‘,32 ‘iphone‘,33 ‘ipod‘,34 ‘blackberry‘,35 ‘meizu‘,36 ‘android‘,37 ‘netfront‘,38 ‘symbian‘,39 ‘ucweb‘,40 ‘windowsce‘,41 ‘palm‘,42 ‘operamini‘,43 ‘operamobi‘,44 ‘openwave‘,45 ‘nexusone‘,46 ‘cldc‘,47 ‘midp‘,48 ‘wap‘,49 ‘mobile‘50 ); 51 // 從HTTP_USER_AGENT中尋找手機瀏覽器的關鍵字52 if (preg_match("/(" . implode(‘|‘, $clientkeywords) . ")/i", strtolower($_SERVER[‘HTTP_USER_AGENT‘])))53 {54 return true;55 } 56 } 57 // 協議法,因為有可能不準確,放到最後判斷58 if (isset ($_SERVER[‘HTTP_ACCEPT‘]))59 { 60 // 如果只支援wml並且不支援html那一定是行動裝置61 // 如果支援wml和html但是wml在html之前則是行動裝置62 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‘))))63 {64 return true;65 } 66 } 67 return false;68 }
PHP判斷訪問者手機移動端還是PC端的函數,親測好用