$text = array('a','b','c','d','e');
我想每隔5分钟输出$text中的一个元素
比如现在输出a服务器时间过了5分钟后输出b再过5分钟输出c,,,如果到后一个元素了再过5输出第一个元素
也就是服务器时间每过去5分钟页面变一次
(我没有mysql要用php实现)
感谢majiguang,我自己搞了个每10分钟变一次的,如下:
$t = date('i');
if($t<10){
$dd = 0;
}
else if($t>=10 and $t<20){
$dd = 1;
}
else if($t>=20 and $t<30){
$dd = 2;
}
else if($t>=30 and $t<40){
$dd = 3;
}
else if($t>=40 and $t<50){
$dd = 4;
}
else if($t>=50){
$dd = 5;
}
效果还可行,基本上达到了我的目的,再次感谢majiguang
$file="a.txt";
if(!file_exists($file))
{
$handle=fopen('a.txt','w');
fwrite($handle,time());
fclose($handle);
}
$start=file_get_contents($file);
$time=time();
$text = array('a','b','c','d','e');
$index=0;
$dif=$time-$start;
if($dif>5*60 and $dif<10*60)
{
$index=1;
}
elseif($dif>10*60 and $dif<15*60)
{
$index=2;
}
elseif($dif>15*60 and $dif<20*60)
{
$index=3;
}
elseif($dif>20*60 and $dif<25*60)
{
$index=4;
}
elseif($dif>25*60)
{
$handle=fopen('a.txt','w');
fwrite($handle,time());
fclose($handle);
$index=0;
}
echo $text[$index];本回答被提问者采纳
{
echo $text[$i];
sleep(300);//sleep函数表示暂停300秒然后继续执行
if($i==(count($text)-1))//到最后一个元素后返回第一个继续执行
{
$i=0;
}
}
大概这么回事吧,代码我没测试,你可以试试看
每隔5分钟按照数组的顺序输出一次,如下代码:
$wxh = array("1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15");
$wxsl=count($wxh);//数组总数量
$sjjg='5';//时间间隔 5分钟
$timea=date("H");//当前小时
$timeb=date("i");//当前分
$sa=$timea*60+$timeb;//计算当前时间总分钟
$s='1440';//每天总共是1440分钟
$ta=$wxsl*$sjjg;//走完一轮所花总时间=数组数量*时间间隔
$tb=intval($sa/$ta);//当前时间的总分钟除一轮花的时间,在向下取整,
$tc=$sa-$tb*$ta;//本轮次时间
$td=intval($tc/$sjjg);//本轮次时间除时间间隔向下取整就是当前轮次
echo $wxh[$td]."<br>"; //该轮次所在数组位置对应的结果
可以在页面上加上<META HTTP-EQUIV="Refresh" content="间隔秒数"> ,然后从服务器取数数据回来显示,这个是全页面刷新的,如果不想全页面刷新,用js的setTimeout函数,通过ajax设置回调函数来显示取回的数据追问
老大,我这个不是定时器。。。
我这个可以先设定个时间比如:
$t = “2011-3-22 15:59:44”;
然后用服务器时间和$t比较每过5分钟$text[+1],我只是不知道代码怎么写
B/S模式是被动模式,没请求,你php代码都不执行,你怎么能知道你的$t,又怎么比较,即使有人请求,你还得想办法保存$text的当前值,或者索引,才能继续+1输出,再说,5分钟,php.ini中的脚本超时早就过期了,早就报错了,除非你改了它,可这样严重影响服务器性能。所以,你的功能只好找其他方法实现, 比如windows下的计划任务方式或linux下的cron作业来调用你的脚步,同样,你得有个地方保留当前值,否则你没法定位数组下标的
if($dd>0&&$dd<5){
echo(array["a"]);
}
....