,用手机访问PC端WWW域名的时候,自动判断跳转到移动端,用电脑访问M域名手机网站的时候,自动跳转到PC端,
我们团队在开发erdaicms二代旅游CMS网站管理系统的时候(),分别开发了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 }