emlog是一个比较小巧的博客程序,而且自带一个简单的手机站程序。根据我网站流量观察,现在通过手机上网的人越来越多,虽然在网络高度发达的今天,用手机屏幕看互联网还是有些不便,毕竟专门针对PC浏览器的网站对手机来说大了点,当然用平板的话,就不考虑这些了。超大大屏幕手机也可以不考虑。那么如何实现这个功能?比如说PC网站访问的是A,手机网站同样的访问的是A呢?其实原理很简单,就是调用相同的参数。实现方法如下:
一、判断访问的是手机还是PC浏览器
代码很多,我这里使用了百度提供的。打开你网站模板下的head.php页面,在</head>添加下面代码
<!--通过百度排判断是否是手机访问网站,如果是跳转到相应的手机版网页-->

<script src="http://siteapp.baidu.com/static/webappservice/uaredirect.js" type="text/javascript"></script>
<script type="text/javascript">uaredirect("http://www.XX.com/m/?post=<?php echo $logid;?>");</script>
也可以使用以下代码
<!--通过判断是否是手机访问网站,如果是跳转到相应的手机版网页-->
 <script type="text/javascript"> 
 <!-- 
 //平台、设备和操作系统 
 var system = { 
 win: false, 
 mac: false, 
 xll: false, 
 ipad:false 
 }; 
 //检测平台 
 var p = navigator.platform; 
 system.win = p.indexOf("Win") == 0; 
 system.mac = p.indexOf("Mac") == 0; 
 system.x11 = (p == "X11") || (p.indexOf("Linux") == 0); 
 system.ipad = (navigator.userAgent.match(/iPad/i) != null)?true:false; 
 //跳转语句,如果是手机访问就自动跳转到响应的手机网站页面 
 if (system.win || system.mac || system.xll||system.ipad) { 
 
 } else { 
 
 window.location.href = "http://www.xx.com/m/?post=<?php echo $logid;?>"; 
                       } 
                --> 
               </script> 

二、跳转到相应的页面
例如网站的http://www.XX.com/?post=45  那么转化成手机版是http://www.XX.com/m/?post=45 (当然有点网站直接绑定其他域名例如m.xx.com),大家看出来了其实就是一个ID不同而已,这里举例就是把http://www.XX.com/?post=45 转化成http://www.XX.com/m/?post=45,一个简单的通配符就实现了吧,注意在emlog中可以使用<?php echo $logid;?>直接调出这个ID号,省事不少。当然其他博客中也有办法。请见三中。 
www.music4x.com触摸版首页
三、方法三
上述已经实现了这个功能,三是多余的,其实你错了,三可以说在一定程度上节约了时间,看我网站每页下边的二维码,如果用手机扫面的话,直接可以进入相应的手机版内容,这里没有跳转,而是在生成二维码之前就已经实现了地址的转化,不过很遗憾的是,在哪里无法使用<?php echo $logid;?>直接调出ID号,就使用了变通的办法,我把生成二维码的与本主题有关的代码提出来。

//截取URL中的数字函数
  function findNum($str=''){
        $str=trim($str);
        if(empty($str)){return '';}
        $reg='/(\d{3}(\.\d+)?)/is';//匹配数字的正则表达式
        preg_match_all($reg,$str,$result); if(is_array($result)&&!empty($result)&&!empty($result[1])&&!empty($result[1][0])){
            return $result[1][0];
        }
        return '';

$url = Url::log($arr['logid']);//提取本页面的URL

http://www.XX.com/m/?post=<?php echo findNum($url); ?>
未命名-1.jpg
扫描二维码的时候其实地址就已经是http://www.XX.com/m/?post=<?php echo findNum($url); ?>了。
四、方法四(更加优化的解决办法)
此方法解决了点击tag标签会自动重定向的问题,点tag标签的时候会不自动转向手机版也算是一个升级吧.代码的意思是当首页时进入手机版首页,当分类页时进入对应分类的手机版,文章页也一样如此。打开你当前使用的模版文件夹下的header.php文件,在</head>之前加上下面的代码。
<script src="http://siteapp.baidu.com/static/webappservice/uaredirect.js" type="text/javascript"></script>
<?php if($pageurl == Url::logPage()):?>
<script type="text/javascript">uaredirect("http://music4x.com/m","http://music4x.com");</script>
<?php elseif(isset($sortName)): ?>
<script type="text/javascript">uaredirect("http://music4x.com/m/?sort=<?php echo $sortid;?>","http://music4x.com");</script>
<?php elseif(isset($logid)):?>
<script type="text/javascript">uaredirect("http://music4x.com/m/?post=<?php echo $logid;?>","http://music4x.com");</script>
<?php else: ?>
<?php endif; ?>

4 thoughts on “emlog建立的博客网站使用手机访问时跳转到相应的手机网站”

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

蜀ICP备15014327号-1