php代码自动执行

 

PHP自动执行任务,关掉页面或浏览器也会自动定时执行:
<?php
ignore_user_abort(); //即使Client断开(如关掉浏览器),PHP脚本也可以继续执行.
set_time_limit(0); // 执行时间为无限制,php默认的执行时间是30秒,通过set_time_limit(0)可以让程序无限制的执行下去
$interval=60*5; // 每隔5分钟运行
do{
$fp = fopen('test.txt','a');
fwrite($fp,'test');
fclose($fp);
sleep($interval); // 按设置的时间等待5分钟循环执行
}while(true);
?>
首先运行该程序,然后关闭该页面,程序仍然运行中,test便会每隔30秒的写入到text3.txt文件。

隔时生成首页的PHP代码:
<?php
set_time_limit(0);
$baseCmsUrl = "http://www.studstu.com";//你网站的根网址,结束不要加 / 
$dmPageName = "index.php";//动态主页的名称
$stPageName = "index.html";//生成静态主页的名称
$mkTime = 3600;//你希望多长时间更新一次,单位是秒
//下面是执行的代码
$tureStFile = dirname(__FILE__).'/'.$stPageName;
$ftime = @filemtime($tureStFile);
if(!file_exists($tureStFile) || ($ftime < time()-$mkTime))
{
        $body = file_get_contents($baseCmsUrl.'/'.$dmPageName);
        $fp = fopen($tureStFile, 'w');
        fwrite($fp, $body);
        fclose($fp);
}
?>
将上面代码保存为task.php
在经常访问的页面调用:<script language='Javascript' src='http://blog.163.com/litianyichuanqi@126/blog/task.php'></script>

在某个固定的时间执行的PHP代码:
<?php
//计划执行时间
if($job=='cron'){
check_method();
//查询数据库的下一个时间是否小于现在的时间
if($maxrecord['deltemptime']<$nowtime['timestamp']){
    $crondb = array();
    //day为0为每日 week周 minute时间断 hour什么时侯开始
    $rt['cron'] = array('day'=>'0','week'=>$config['cron_week'],'m'=>$config['cron_minute'],'hour'=>$config['cron_hour']);
    $crondb[] = $rt;
}
foreach ($crondb AS $key => $cron_val){
    //设置了允许分钟段
    if (!empty($config['cron_minute'])){
      $m = explode(' ', $config['cron_minute']);
      
      $m_now = intval(local_date('i',$nowtime['timestamp']));
      if (!in_array($m_now, $m)) {//不包含此分钟的跳出
        continue;
      }
    }
   /*执行任务*/
                               /*********此处是你写的任务***********************/
    $next_time = get_next_time($cron_val['cron']);
    $DB->query("UPDATE `maxrec` SET `deltemptime`={$next_time}");
}
exit;
}
?>

源自:http://blog.163.com/litianyichuanqi@126/blog/static/115979441201110291742548/

转载于:https://my.oschina.net/deacyn/blog/136001

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值