欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

PHP如何设置每隔一段时间自动执行某段代码

shiping1 的头像

PHP如何设置每隔一段时间自动执行某段代码

分类:个人日志   来源:原创   时间:2012-05-05 21:45:50

    PHP如何设置每隔一段时间自动执行某段代码?例如定时生成静态文件之类的,这就需要设置休眠时间,即每隔一段时间程序就会调用某段代码。

代码如下:

ignore_user_abort(); //即使Client断开(如关掉浏览器),PHP脚本也可以继续执行.

set_time_limit(0); // 执行时间为无限制,php默认执行时间是30秒,可以让程序无限制的执行下去

$interval=24*60*60; // 每隔一天运行一次

do{

    sleep($interval); // 按设置的时间等待一小时循环执行

    $sql="update blog set time=now()";

    ...... //其他操作

}while(true);


来自 http://gdchdach.blog.163.com/blog/static/344756132013112544912236/
来自 http://www.lession.net/blog/689.html


 

PHP能否自动定时执行某代码

2010-08-13 03:36rickysilk | 分类:PHP | 浏览7189次
就例如一些程序里面的计划任务那样,设置了时间后,到达那个时间,自动运行那个功能.

我知道一个方法就是利用JS引用的方法,在HTML里面引入PHP文件,然后判断时间来执行,但这样是需要有浏览者点开网页,才能触发那程序,我希望的是,在网站0流量的情况下,程序会自动运行,有可能吗??

我看了下sleep()函数,感觉不太合适,我需要的是设置一个时间后,例如每天8点整,程序自动运行.

我没有分,希望能帮忙解答一下..
先谢谢,那我再补充一下.如果我先触发一次,让它自己执行下去,

但会出现操作超时

Maximum execution time of 30 seconds exceeded 

这个除了不限制程序的执行时间外,有别的方法解决吗??

<?php
for($i=1;$i<=25;$i++){
$lockfile = dirname(__FILE__).'/mks_art'.$i.'.lock';
$fp = fopen($lockfile,'w');
    fwrite($fp,time());
    fclose($fp);
 
 sleep(2);
}
?>

我写了一个这样的程序来测试,关了浏览器也能生成文件,但到15个左右的时候,就会提示超时了.
 
2010-08-15 21:38提问者采纳
php是需要触发执行的, 没办法长期保持执行着它, 即便你用sleep, 它仍然是需要你首先去点它一次, 它才会一直存在

方法是用计划任务, 没错就是计划任务, 无论windows/*nix都有计划任务, 你可以把php放进计划任务里, 用命令行方式执行php程序

事实上没有任何可能性在0访问的情况下让php执行, 因为php自身就是服务器端脚本解释工具, 服务器当然是有人访问才工作才对, 楼主在反其道而行, 如果你希望用php执行桌面程序, 也不是没有办法,php官方就有这种工具, 但是和php的运行方式有太多不同,所以控制方式也都不同,严格的说,只是php的语法而已 

对于提问者补充的补充:
ignore_user_abort(1);
set_time_limit(0);楼主要研究下这两个

来自 http://zhidao.baidu.com/question/174460488.html


 

普通分类: