<?php
$data=file("date.txt");
$ini=0;//初始值
$p=10;//每天递增的数
if(count($data)){
//如果存在数据,则改写数据
$data=split(",",$data[0]);
if($data!=date("Y-m-d")){
//不是当前日期,更新数据
$fp=fopen("date.txt","w");
$str=date("Y-m-d").",".($data[1]+$p);//字符串两个参数,用逗号分隔。例:2013-7-20 10;
fputs($fp,$str);
$ini=$data[1]+$p;
}
}else{
//否则直接写入数据
$fp=fopen("date.txt","w");
$str=date("Y-m-d").",".$ini;//字符串两个参数,用逗号分隔。例:2013-7-20 10;
fputs($fp,$str);
}
echo $ini;//输出当日的数字
?>
上面的代码实现的是每次刷新自动加10,但是我想实现的是
自动的每隔40秒数字自动加10,将加完的数字写入txt覆盖原来txt的数值,之后从txt读取写入的这个数值并显示出来
不能受刷新影响,也不用缓存和cookie
求高手改写
记得采纳,C币不够了可以站内短信联系我购买,:)。。。
<?php
$data=file("date.txt");
$ini=0;//初始值
$p=10;//每天递增的数
if(count($data)){
//如果存在数据,则改写数据
$data=explode(",",$data[0]);
$now=date("Y-m-d H:i:s");//当前时间
$second=floor((strtotime($now)-strtotime($data[0]))%86400);//计算时间差,秒
$ini=$data[1];
if($second>=40){//上次写入和当前时间相差40s以上增加并写入文件
$fp=fopen("date.txt","w");
$str=date("Y-m-d H:i:s").",".($data[1]+$p);//字符串两个参数,用逗号分隔。例:2013-7-20 10;
fputs($fp,$str);
$ini=$data[1]+$p;
}
}else{
//否则直接写入数据
$fp=fopen("date.txt","w");
$str=date("Y-m-d H:i:s").",".$ini;//字符串两个参数,用逗号分隔。例:2013-7-20 10;
fputs($fp,$str);
}
echo $ini;//输出当日的数字
?>
建议加一个if判断或者for循环,设置时间40s一个循环加10即可
自动的每隔40秒数字自动加10,将加完的数字写入txt覆盖原来txt的数值,之后从txt读取写入的这个数值并显示出来
不能受刷新影响,也不用缓存和cookie
自动的d每隔40秒数df字自动加10,将加完的数fds字写入txt覆盖原来txt的af数值,之后从txt读取写入的这个数af值并显示出来
不能受刷afdss新影响,也不用缓存af和cookie
如果只是网页上显示,不需要存储人数据库
则设置初始值$count 还有初始日期$date,
假设$count=10,$date='2015-07-18';
然后进行操作,方法和上面大同小异
$now = strtotime(date('Y-m-d', time()));
if($now > strtotime($date))
{
$add = intval(($now-strtotime($date))/(24*3600));
$count += 10*$add;
}
可以将其封装成函数
function count($count,$date){
$now = strtotime(date('Y-m-d', time()));
if($now > strtotime($date))
{
$add = intval(($now-strtotime($date))/(24*3600));
$count += 10*$add;
}
return $count;
}
如果要加随机数那么就需要加上random函数,而且需要存储用来判定的$date,可以用cookies存储也可以用session存储