1.根据前两篇所总结,处理数据都是在客户端即用户浏览设备端,而有的设备,例如手机对js的编译解释出现延迟,所以本次将数据的处理放在服务器端,chuli.php处理完毕数据在传回给time_weixin.js,本文与第二篇代码基本一样,改变的是chuli.php和time_weixin.js
2.chuli.php代码如下:
<?php $id=$_POST["id"]; if($id==0){ $str=$_POST["str"]; $str=substr($str,0,strlen($str)-1); $re=file_put_contents('str.txt', $str); if($re){ echo "1"; } else{ echo "0"; } } else if($id==1){ $str=file_get_contents('str.txt'); echo $str; } else{ $str=file_get_contents('str.txt'); $tmnow=strtotime(date("H:i")); $hang=explode("/",$str); for ($i=0;$i<count($hang);$i++) { $lie=explode("|",$hang[$i]); $tm=$lie[0]; $tmarr=explode("-",$tm); $tmfir=strtotime($tmarr[0]); $tmlast=strtotime($tmarr[1]); if($tmnow>=$tmfir && $tmnow<$tmlast){ $name=$lie[1]; $weixin=$lie[2]; break; } } $info = array('name' =>$name ,'weixin'=>$weixin ); foreach ( $info as $key => $value ) { $info[$key] = urlencode($value); //使用urlencode()对中文编码,防止中文乱码 } echo urldecode(json_encode($info));//使用urldecode()对中文解码 }
3.time_weixin.js代码如下
function time_weixin(){ var info= new Array(); $.ajax({ url:"../js/chuli.php", data:{id:2}, type:"POST", dataType:"TEXT", async:false, success: function(data){ var msg=eval("("+data+")");//ajax中返回的是json字符串,将它转化为js对象:eval再加上两边的括号和引号 info[0]=msg['name']; info[1]=msg['weixin']; } }); return info; } var nmtext=time_weixin()[0]; var wxtext=time_weixin()[1]; var nm=document.getElementsByClassName("nm"); var wx=document.getElementsByClassName("wx"); for(i=0;i<nm.length;i++){ nm[i].innerHTML = nmtext; } for(i=0;i<wx.length;i++){ wx[i].innerHTML = wxtext; }