热爱技术
专注分享

php中辨别浏览器移动端或PC端并执行跳转的方法

当网站的手机端和PC端分开独立,不同域名时,或者自适配网页需要单独禁用手机端/PC端时,可用php执行自动识别/跳转的功能。

自动识别手机端/PC端代码并跳转的代码

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_tokenlist=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()){
header("Location: https://www.xiaoweigod.com/"); //如果为手机端,执行跳转
}
else{

}

本段代码通过检测系统类型和屏幕分辨率综合判断是否为手机端,并执行不同的跳转操作。以上操作为:如果检测到手机端访问,则直接将网页跳转到www.xiaoweigod.com,如果不是手机端,则继续加载网页,不执行跳转。

为了确保任意页面都可以实现跳转功能,不用每个页面都放这么一行代码,请将该代码放到网页文件的 header.php或者footer.php中的<?php ?>内。如图

blob.png

两种跳转方法

第一种是不带任何提示的跳转,例如我上面的代码。当用手机访问v.xiaoweigod.com时,直接跳转到www.xiaoweigod.com,给人一种感觉就是我用v.xiaoweigod.com访问了www.xiaoweigod.com。

第二种是带提示的跳转,将上面识别和跳转的代码中if后面的内容更改,如下:

    if (isMobile()){
echo "<script> alert('正在调试,暂不支持手机页面。即将前往小伟博客主页'); </script>";
       echo "<meta http-equiv='Refresh' content='0;URL=https://www.xiaoweigod.com'>"; ;
}
else{

}

上面用了metal标签刷新跳转,content后面的0为跳转的等待时间,可以自行修改。

也可以利用js跳转:

if (isMobile()){
echo "<script> alert('正在调试,暂不支持手机页面。即将前往小伟博客主页');parent.location.href='https://www.xiaoweigod.com'; </script>"; ;
}

弹窗跳转的好处是可以给用户更加精确的提示,但在弹窗的过程中手机端的页面也会自己加载好,点击弹窗的确定后又会跳转到新的页面,手机端会被看到。至于选择哪种跳转方式,可自行考虑。

blob.png

赞(0) 打赏
未经允许不得转载:小伟博客 » php中辨别浏览器移动端或PC端并执行跳转的方法

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

觉得文章有用就打赏一下文章作者

非常感谢你的打赏,我们将继续给力更多优质内容,让我们一起创建更加美好的网络世界!

支付宝扫一扫打赏

微信扫一扫打赏