判断用户访问使用的是手机还是浏览器

php php 1512      收藏
在做网站的时候,有可能会针对用户访问来源的不同,给予不同的访问页面,或者定向到不同的页面,如何用php判断用户是通过手机还是通过PC端访问的网站?判断完之后,根据访问终端,跳转到终端对应的页面。

在做网站的时候,有可能会针对用户访问来源的不同,给予不同的访问页面,或者定向到不同的页面,如何用php判断用户是通过手机还是通过PC端访问的网站?判断完之后,根据访问终端,跳转到终端对应的页面。

具体的使用方法,定义在函数中,使用时,只需调用函数既可以了:

自学php博客

<?php

function isMobile(){  

 $useragent=isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : '';  

 $useragent_commentsblock=preg_match('|\(.*?\)|',$useragent,$matches)>0?$matches[0]:'';        

 function CheckSubstrs($substrs,$text){  

 foreach($substrs as $substr)  

  if(false!==strpos($text,$substr)){  

   return true;  

  }  

   return false;  

  }

 $mobile_os_list=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_list=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');  

 $found_mobile=CheckSubstrs($mobile_os_list,$useragent_commentsblock)|| CheckSubstrs($mobile_token_list,$useragent);  

    if ($found_mobile){  

        return true;  

    }else{  

        return false;  

    }  

}

if(isMobile())

    if ( strpos($_SERVER['HTTP_USER_AGENT'], 'MicroMessenger') !== false ){//判断是否是微信访问

        header("Location:http://www.baidu.com/");//微信访问跳转到的地址

    }else{

        header("Location:http://m.zixuephp.cn/");//手机浏览器访问跳转到的地址

    }

else

    header("Location:http://www.zixuephp.cn/");//电脑访问跳转地址

?>