$date = getdate();
$require_day = $date['mday'];
if($require_day=='25'){gogogo;}

解决方案 »

  1.   

    if(date('d') == 25 && ! file_exists('报告'.date('Ym').'.log')) {
      生成报告并写入 $filename = '报告'.date('Ym').'.log' 文件
    }
      

  2.   

    如果报告单的数据在数据库里,
    假设
    报告数据表 log (id,content,time)
    $filename = '报告'.date('Ym').'.log'; 
    if(date('d') == 25) 
    {
       if(!file_exists($filename))
       {
          $thismonth=intval(date("m"));
          $lastmonth25=(($thismounth-1==0)?(intval(date("Y"))-1):date("Y"))."-".(($thismonth-1==0)?"12":$thismonth-1)."-25";      $sql="SELECT * FROM `log` WHERE UNIX_TIMESTAMP(time)<UNIX_TIMESTAMP('".date("Y-m-d",time())."') and UNIX_TIMESTAMP(time)>=UNIX_TIMESTAMP('".$lastmonth25."')";
          $rs=$dbconn->Execute($sql);
          while(!$rs->EOF)
          {
             $content.=$rs->fields["content"];
             $rs->MoveNext();
          }
          $filename = '报告'.date('Ym').'.log'; 
           //  生成报告并写入 $filename = '报告'.date('Ym').'.log' 文件
          wfile($filename,$content);
       } else {
        require($filename);
       }
    } else {
        die("每月25生成内容");
    }
    function wfile($file,$content,$mode='w') {
        $oldmask = umask(0);
        $fp = fopen($file, $mode);
        if (!$fp) return false;
        fwrite($fp,$content);
        fclose($fp);
        umask($oldmask);
        return true;
    }