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 ; } |