php定时函数
用linux的定时任务来调度php程序,具体设置方法请网络 linux crontab
② php定时执行任务,给个思路
linux 执行脚本得这样,
把形成图的代码,单独放一个页面
③ php定时执行任务怎么写
借助crontab来编写;
编写定时执行脚本(单独的一个php文件,或者某个方法);
配置crontab,指定执行路径地址;
启动crontab服务即可。
④ 请问如何用PHP语言让系统定时执行一个任务
如果能使用主机上的计划任务就更好。
如果不能,就通过写一个全局计时器,通过用户访问PHP页面来触发。
这是根据B/S软件模型来决定的,PHP代码一般不会主动执行,只会被动地等待用户访问后执行,所以你可以每次被访问时检查是否到达设定的时间点,如果到了就执行保存事件一次,并把全局的另外一个条件(如将结果保存在磁盘上,下次检查是否有这个文件)设为真,下次就不会再执行。
纯手打,仅提供一个思路~
⑤ 怎样定时执行某个PHP脚本文件,带参数,没有服务器权限,虚拟主机用户 - 技术问答
1楼的,要是每天的2点钟定时执行某个脚本。又该怎么做呢??ignore_user_abort。。。。我要定时执行某个文件,而不是执行ignore_user_abort这个函数所在的那个php脚本
⑥ 如何使用纯PHP实现定时器任务
我用PHP写了下面的延时代码,主要用来作为BAT文件调用进行倒计时:
<?php
//批处理延时工具
if($argc==2){
set_time_limit(0);
$v=$argv[1]+0;
while($v>0){
echo" 请等待".sec2str($v)."秒。。。";
$n=$v>600?600:($v>60?60:($v>10?10:1));
sleep($v>$n?$n:$v);
$v-=$n;
}
$v=$argv[1]+0;
echo" ".sec2str($v)."秒延时完毕。 ";
}
elseecho"使用方法: sleep.php<演示秒数>";
functionsec2str($v){
$s='';
if($v>3600){$s.=floor($v/3600).':';$v%=3600;}
if($s<>''||$v>60){$s.=floor($v/60).':';$v%=60;}
$s.=$v;
return$s;
}
?>
⑦ php能不能定时执行某个程序功能
ignore_user_abort(true);
sleep(秒);
//可以用这个函数,但不建议你这样做,如果程序有什么问题,服务器很容易宕机!
这个函数就是关闭浏览器后,程序仍然继续执行,意思就是你想关都关不掉了,只能重启服务器
⑧ php定时执行
php不行
一般是用linux的驻留程序或windows的计划任务。
你要用PHP的前提是你的网站凌晨2点的时候会有人访问,因为PHP程序只有浏览器访问才能激活。而且你是要出报表,处理起来会非常慢,客户端浏览器中途中断,你的PHP程序也中断,生成的报表就不完整。
所以,暂时没有好的方法去用PHP做这个事情
⑨ php如何制作类似setInterval函数
PHP定时执行的三种方式实现
1、windows 的计划任务
2、linux的脚本程序
3、让web浏览器定时刷新
具体实现
1、windows计划任务
PHP很少在win服务器上跑,具体实现也不再深究,看网上实现的原理大概是写bat脚本,然后让window任务添加执行这个bat脚本。
2、linux 的脚本实现
这里主要使用到crontab这个命令,
使用方式 :
crontabfilecrontab[-uuser][-uuser]{-l|-r|-e}
说明 :
crontab是用来让使用者在固定时间或固定间隔执行程式之用
使用crontab写shell脚本,然后让PHP调用shell,这个是利用linux的特性,应该还不算PHP自身语言的特性
3、PHP实现定时执行计划任务
使用php让浏览器刷新需要解决几个问题
PHP脚本执行时间限制,默认的是30m 解决办法:set_time_limit();或者修改PHP.ini 设置max_execution_time时间(不推荐)
如果客户端浏览器关闭,程序可能就被迫终止,解决办法:ignore_user_abort即使关闭页面依然正常执行
如果程序一直执行很有可能会消耗大量的资源,解决办法使用sleep使用程序休眠一会,然后在执行
PHP定时执行的代码:
<?php
ignore_user_abort();//关掉浏览器,PHP脚本也可以继续执行.
set_time_limit(0);//通过set_time_limit(0)可以让程序无限制的执行下去
$interval=60*30;//每隔半小时运行
do{
//这里是你要执行的代码
sleep($interval);
}while(true);