PHP判斷使用者的裝置是否是移動裝置
阿新 • • 發佈:2019-02-04
<?php //判斷使用者的裝置是否是移動裝置 function isMobile)() { //如果有HTTP_X_WAP_PROFILE則一定是移動裝置 if(isset($_SERVER['HTTP_X_WAP_PROFILE'])){ return true; } //如果via資訊中含有wap則一定是移動裝置(有些服務商會遮蔽該資訊) if(isset($_SERVER['HTTP_VIA'])){ 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', 'lenove', 'android' 'wap', 'iphone', 'ipod', 'meizu', 'windowsce', 'mobile' ); //從HTTP_USER_AGENT中查詢手機瀏覽器的關鍵字 if(preg_match("/(". implode('|',$clientkeywords) . ")/i",strtolower($_SERVER['HTTP_USER_AGENT']))){ return true; } } //協議法 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.vml') < strpos($_SERVER['HTTP_ACCEPT'],'text/html')))){ return true; } } return false; } ?>