1html 2android 3web 4windows 5浏览器 6微信 7iphone 8spa 9code 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
function ismobile() { $web = 0; $mobile = 1; $wx = 2; // 判断是不是微信浏览器 if ( strpos ( $_SERVER [ 'HTTP_USER_AGENT' ], 'MicroMessenger' ) !== false ) { return $wx ; } // 若是有HTTP_X_WAP_PROFILE则必定是移动设备 if (isset ( $_SERVER [ 'HTTP_X_WAP_PROFILE' ])) return $mobile ; //此条摘自TPM智能切换模板引擎,适合TPM开发 if (isset ( $_SERVER [ 'HTTP_CLIENT' ]) && 'PhoneClient' == $_SERVER [ 'HTTP_CLIENT' ]) return $mobile ; //若是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 $mobile ; } } //协议法,由于有可能不许确,放到最后判断 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 $mobile ; } } return $web ; } |