PHP执行定时任务
1.当PHP像文件写入信息的时候
<?php
for ($i=0; $i < 10; $i++) {
$str="我是第".$i."条"." ";
file_put_contents("a.txt",$str,8);
}
这样就可以换行,linux使用"
"就可以,windows"
".
我是第0条
我是第1条
我是第2条
我是第3条
我是第4条
我是第5条
我是第6条
我是第7条
我是第8条
我是第9条
<?php
ignore_user_abort();//关闭浏览器后,继续执行php代码
set_time_limit(0);//程序执行时间无限制
$sleep_time = 5;//多长时间执行一次
//$switch为include 'jsonout.php'的返回值
//return 1;//1执行,0不执行
$switch = include 'jsonout.php';
$i = 1;
while($switch){
//这里是想要循环执行的语句
$t = '我是第';
$r = '条';
$msg=$t.$i.$r."
";
file_put_contents("a.txt",$msg,8);//写入信息
sleep($sleep_time);//等待时间,进行下一次操作。
$i++;
}
exit();
?>
原文链接:http://blog.csdn.net/leafgw/article/details/50800153
现在对用到的知识进行解析:
Uslepp()是推延执行 sleep()暂停
1.int ignore_user_abort ([ string $value ] )
ignore_user_abort只是忽略用户关闭操作,如果设置为 true,则忽略与用户的断开,如果设置为 false,会导致脚本停止运行。
一般都是用ignore_user_abort配合sleep来完成自动计划任务,但是这些都没有操作系统自带的计划任务来得强
它的状态,只要执行一句ignore_user_abort();这个就能在页面上看到它是返回0或1!
2.set_time_limit — 设置脚本最大执行时间
设置允许脚本运行的时间,单位为秒。如果超过了此设置,脚本返回一个致命的错误。默认值为30秒,最大的执行时间,单位为秒。如果设置为0(零),没有时间方面的限制。
3.ob_flush()和flush()的区别
“ob_flush()和flush()的区别。前者是把数据从PHP的缓冲中释放出来,后者是把不在缓冲中的或者说是被释放出来的数据发送到浏览器。所以当缓冲存在的时候,我们必须ob_flush()和flush()同时使用。正确使用的顺序是:先用ob_flush(),后用flush()
str_repeat — 重复一个字符串
说明
string str_repeat ( string $input , int $multiplier )
返回 input 重复 multiplier 次后的结果。
<?php
echo str_repeat('哈哈哈哈哈哈' ,1000);
for($i=0;$i<3;$i++) {
ob_flush();
flush();
sleep(3);
}
?>