/** * Test if the current browser runs on a mobile device (smart phone, tablet, etc.) * * @return bool true|false */ function wp_is_mobile() { static $is_mobile; if ( isset($is_mobile) ) return $is_mobile; if ( empty($_SERVER['HTTP_USER_AGENT']) ) { $is_mobile = false; } elseif ( strpos($_SERVER['HTTP_USER_AGENT'], 'Mobile') !== false || strpos($_SERVER['HTTP_USER_AGENT'], 'Android') !== false || strpos($_SERVER['HTTP_USER_AGENT'], 'Silk/') !== false || strpos($_SERVER['HTTP_USER_AGENT'], 'Kindle') !== false || strpos($_SERVER['HTTP_USER_AGENT'], 'BlackBerry') !== false || strpos($_SERVER['HTTP_USER_AGENT'], 'Opera Mini') !== false || strpos($_SERVER['HTTP_USER_AGENT'], 'Opera Mobi') !== false ) { $is_mobile = true; } else { $is_mobile = false; } return $is_mobile; }
/** * @name: is_wap * @description: 是否是wap移动设备访问 * @return: boolean **/ function is_wap(){ if(isset($_SERVER['HTTP_VIA'])) return TRUE; if(isset($_SERVER['HTTP_X_NOKIA_CONNECTION_MODE'])) return TRUE; if(isset($_SERVER['HTTP_X_UP_CALLING_LINE_ID'])) return TRUE; if(strpos(strtoupper($_SERVER['HTTP_ACCEPT']), 'VND.WAP.WML') > 0) return TRUE; $http_user_agent = isset($_SERVER['HTTP_USER_AGENT']) ? trim($_SERVER['HTTP_USER_AGENT']) : ''; if($http_user_agent == '') return TRUE; $mobile_os = array('Google Wireless Transcoder', 'Windows CE', 'WindowsCE', 'Symbian', 'Android', 'armv6l', 'armv5', 'Mobile', 'CentOS', 'mowser', 'AvantGo', 'Opera Mobi', 'J2ME/MIDP', 'Smartphone', 'Go.Web', 'Palm', 'iPAQ'); $mobile_token = array('Profile/MIDP', 'Configuration/CLDC-', '160×160', '176×220', '240×240', '240×320', '320×240', 'UP.Browser', 'UP.Link', 'SymbianOS', 'PalmOS', 'PocketPC', 'SonyEricsson', 'Nokia', 'BlackBerry', 'Vodafone', 'BenQ', 'Novarra-Vision', 'Iris', 'NetFront', 'HTC_', 'Xda_', 'SAMSUNG-SGH', 'Wapaka', 'DoCoMo', 'iPhone', 'iPod'); $flag_os = $flag_token = FALSE; foreach($mobile_os as $val){ if(strpos($http_user_agent, $val) > 0){ $flag_os = TRUE; break; } } foreach($mobile_token as $val){ if(strpos($http_user_agent, $val) > 0){ $flag_token = TRUE; break; } } if($flag_os || $flag_token) return TRUE; return FALSE; }