0755-23698839
132-6576-8769

如何实现手机版网站和电脑版网站的自动识别并跳转

创络讲堂 2014-12-04 08:00:00 7171次 https://www.chuangluo.com/news_415.html 作者:创络科技

手机版网站和电脑版网站的自动识别并跳转

大家可以尝试一下用手机访问我公司官方网站(www.chuangluo.com),系统会自动识别并跳转到手机版网站去;同样的,如果使用电脑访问手机版网站(m.chuangluo.com),系统也会自动识别并跳转到对应的电脑版网址去。目前已经有很多同时拥有手机版网站和电脑版网站的大型企业网站使用了这样的技术,那小型公司网站如果也有这种需求的话,应该如何实现呢?

实现手机版网站和电脑版网站的自动识别并跳转的条件

首先肯定是需要有两个不同版本的网站,这是必然的!第二个条件是这两个版本的网站数据要基本同步。以我公司官方网站为例,电脑版网站的页面比手机版的多,手机版有的页面,电脑版全部都有。这是因为我们电脑版网站上有很多静态的专题页,而手机版则没有,例如:网站价格评估、域名查询等。因此,我们只需要实现自动识别这一部分页面并跳转即可。

如何实现自动识别并跳转

由于我公司目前开发网站的语言是主流的PHP,因此我们此处只讨论PHP的实现方法,其他语言请直接参考本方法稍作修改即可。核心原理是通过程序判断$_SERVER[?HTTP_USER_AGENT?]中是否包含了手机访问的一些特征信息,例如屏幕尺寸,手机品牌或者其他特征信息。此处一提供两个方法供大家参考:

方法一:

判断函数

function is_mob() {
    $user_agent = $_SERVER[?HTTP_USER_AGENT?];
    $mob_agents = Array("240x320","acer","acoon","acs-","abacho","ahong","airness","alcatel","amoi","android","anywhereyougo.com","applewebkit/525","applewebkit/532","asus","audio","au-mic","avantogo","becker","benq","bilbo","bird","blackberry","blazer","bleu","cdm-","compal","coolpad","danger","dbtel","dopod","elaine","eric","etouch","fly ","fly_","fly-","go.web","goodaccess","gradiente","grundig","haier","hedy","hitachi","htc","huawei","hutchison","inno","ipad","ipaq","ipod","jbrowser","kddi","kgt","kwc","lenovo","lg ","lg2","lg3","lg4","lg5","lg7","lg8","lg9","lg-","lge-","lge9","longcos","maemo","mercator","meridian","micromax","midp","mini","mitsu","mmm","mmp","mobi","mot-","moto","nec-","netfront","newgen","nexian","nf-browser","nintendo","nitro","nokia","nook","novarra","obigo","palm","panasonic","pantech","philips","phone","pg-","playstation","pocket","pt-","qc-","qtek","rover","sagem","sama","samu","sanyo","samsung","sch-","scooter","sec-","sendo","sgh-","sharp","siemens","sie-","softbank","sony","spice","sprint","spv","symbian","tablet","talkabout","tcl-","teleca","telit","tianyu","tim-","toshiba","tsm","up.browser","utec","utstar","verykool","virgin","vk-","voda","voxtel","vx","wap","wellco","wig browser","wii","windows ce","wireless","xda","xde","zte");
    $is_mob = false;
    foreach ($mob_agents as $device) {
     if (stristr($user_agent, $device)) {
   $is_mob = true;
   break;
     }
    }
    return $is_mob;
   }

调用函数

if(is_mob())
   {
  //通过$_SERVER["REQUEST_URI"]取出具体页面网址,修改域名后并跳转。
  }

方法二:

$ua = strtolower($_SERVER[?HTTP_USER_AGENT?]);
$uachar = "/(nokia|sony|ericsson|mot|samsung|sgh|lg|philips|panasonic|alcatel|lenovo|cldc|midp|mobile)/i"
if(($ua == ?? || preg_match($uachar, $ua))&& !strpos(strtolower($_SERVER[?REQUEST_URI?]),?wap?))
{
 //通过$_SERVER["REQUEST_URI"]取出具体页面网址,修改域名后并跳转。
}

两种方法中推荐使用第一种,识别率相对较高;第二种效率更高,但识别率相对较低。两种方法均整理自互联网,大家在使用的时候可以稍加修改,以实现更多功能。

  • 企业网站全站搜索是用怎样的原理实现的
    2018-06-06 23:03:00
    常规企业网站由于成本限制,只会实现一个栏目的搜索功能,但有的企业网站却要全站搜索,而本文将为您简述全站搜索实现原理。
  • 提升网站图片缩略图清晰度实现高清压缩
    2014-04-22 08:00:00
    在最近一次客户反馈后,对程序进行了升级,新的图片压缩程序,在原有的基础之上,提高了缩略图的清晰度,实现了高清压缩。
  • 实现电脑版网站和触屏版手机网站的页面一一对应跳转
    2013-10-22 08:00:00
    如何实现电脑版网站和触屏版手机网站的页面一一对应跳转,是同时拥有电脑版网站和手机版网站的网站管理员需要考虑的问题:当使用手机访问电脑版网站的某一个具体页面时能自动跳转到对应的手机版页面。
  • 网站设计师应该为用户考虑些什么
    2012-06-29 08:00:00
    网站设计师的技术可能没有高低之分,但是熟练程度上肯定有区别,有的设计师做出来的网站用起来就是舒服,但是为什么却又说不上来。
  • 2015年9月3日创络科技放假通知
    2015-09-01 08:00:00
    为纪念反法西斯战争胜利70周年,按照此前国务院下发的《关于中国人民抗日战争暨世界反法西斯战争胜利70周年纪念日调休放假的通知》文件指示,经我公司研究决定,现将放假做如下安排:放假3天(2015年9月03日—2015年9月05日),9月06日(星期天)全体员工正式上班。
  • 2016年元旦放假安排
    2015-12-29 08:00:00
    根据《国务院办公厅关于2016年节假日安排的通知》中的相关规定,经我公司研究决定,现将2016年元旦放假做如下安排:元旦放假3天(2016年01月01日—2016年01月03日),01月04日(星期一)全体员工正式上班。
标准建站流程
客服电话
  • 132-6576-8769
  • 0755-23698839