欢迎各位兄弟 发布技术文章
这里的技术是共享的
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
就例如一些程序里面的计划任务那样,设置了时间后,到达那个时间,自动运行那个功能. 我知道一个方法就是利用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个左右的时候,就会提示超时了.
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