emlog建立的博客网站使用手机访问时跳转到相应的手机网站
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号,省事不少。当然其他博客中也有办法。请见三中。
三、方法三
上述已经实现了这个功能,三是多余的,其实你错了,三可以说在一定程度上节约了时间,看我网站每页下边的二维码,如果用手机扫面的话,直接可以进入相应的手机版内容,这里没有跳转,而是在生成二维码之前就已经实现了地址的转化,不过很遗憾的是,在哪里无法使用<?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); ?>
扫描二维码的时候其实地址就已经是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; ?>
个人博客
heh