给你一个使用输出缓冲区的类
<?php
/**
 * 
 *  作者: 徐祖宁 (唠叨)
 *  /club/bbs/showEssence.asp?id=20525
 *
 *  类: outbuffer
 *  功能: 封装部分输出控制函数,控制输出对象。
 * 
 *  方法:
 *  run($proc)                运行php程序
 *    $proc     php程序名
 *  display()                 输出运行结果
 *  savetofile($filename)     保存运行结果到文件,一般可用于生成静态页面
 *    $filename 文件名
 *  loadfromfile($filename)   装入保存的文件
 *    $filename 文件名
 * 
 *  示例:
 *  1.
 *  require_once "outbuffer.php";
 *  $out = new outbuffer();
 *  $out->run("test.php");
 *  $out->display();
 * 
 *  2.
 *  require_once "outbuffer.php";
 *  require_once "outbuffer.php";
 *  $out = new outbuffer("test.php");
 *  $out->savetofile("temp.htm");
 * 
 *  3.
 *  require_once "outbuffer.php";
 *  $out = new outbuffer();
 *  $out->loadfromfile("temp.htm");
 *  $out->display();
 * 
 */class outbuffer {
  var $length;
  var $buffer;
  function outbuffer($proc="") {
    $this->run($proc);
  }
  function run($proc="") {
    ob_start();
    include($proc);
    $this->length = ob_get_length();
    $this->buffer = ob_get_contents();
    $this->buffer = eregi_replace("\r?\n","\r\n",$this->buffer);
    ob_end_clean();
  }
  function display() {
    echo $this->buffer;
  }
  function savetofile($filename="") {
    if($filename == "") return;
    $fp = fopen($filename,"w");
    fwrite($fp,$this->buffer);
    fclose($fp);
  }
  function loadfromfile($filename="") {
    if($filename == "") return;
    $fp = fopen($filename,"r");
    $this->buffer = fread($fp,filesize($filename));
    fclose($fp);
  }
}
?>

解决方案 »

  1.   

    其实不难
    只要你知道如何把他们显示在页面上,就不难把他们写入静态文件里。
    来个对比你就明白了
    这个是在浏览器里显示(例子只是代码片断,无法正常运行)if ($row_num>0)
    {
        $nothing=0;
        $j0=ceil(($row_num)/3);
        echo "<TR align=middle bgColor=#ffffff>\n";
    echo "<TD bgcolor=#ffeedd rowspan=".$j0.">".chr($i)."</TD>\n";
        for ($j=0;$j<$j0;$j++)
      {
         if ($j!=0 && $j0 >= 2) echo "<tr align=middle bgcolor=#ffffff>";
         for ($m=1;$m<=3;$m++)
            {
         $row=$db->fetch_assoc($result);
         $songs=$row==NULL?"&nbsp;":"(&nbsp;".$row["singer_songs"]."&nbsp;)";
    echo "<TD align=left height=25>\n";
    echo "<A href=\"speciallist.php?key=singer_id&num=".$row["singer_id"]."\">&nbsp;".$row["singer_name"]."</A>\n";
    echo "<A href=\"songlist.php?key=singer_id&num=".$row["singer_id"]."\">&nbsp;".$songs."</A></TD>\n";
            }
         echo "</TR>\n";
    }
    }if ($nothing==1) echo "<tr align=middle bgColor=#ffffff><td colspan=4>空</td></tr>";你如果要写入静态文件只要改成
    $mfile=fopen("../htmlfile.htm","w+");
    if ($row_num>0)
    {
        $nothing=0;
        $j0=ceil(($row_num)/3);
    fputs($mfile, "<TR align=middle bgColor=#ffffff>\n");
    fputs($mfile, "<TD bgcolor=#ffeedd rowspan=".$j0.">".chr($i)."</TD>\n");
        for ($j=0;$j<$j0;$j++)
      {
         if ($j!=0 && $j0 >= 2) fputs($mfile, "<tr align=middle bgcolor=#ffffff>");
         for ($m=1;$m<=3;$m++)
            {
         $row=$db->fetch_assoc($result);
         $songs=$row==NULL?"&nbsp;":"(&nbsp;".$row["singer_songs"]."&nbsp;)";
    fputs($mfile, "<TD align=left height=25>\n");
    fputs($mfile, "<A href=\"speciallist.php?key=singer_id&num=".$row["singer_id"]."\">&nbsp;".$row["singer_name"]."</A>\n");
    fputs($mfile, "<A href=\"songlist.php?key=singer_id&num=".$row["singer_id"]."\">&nbsp;".$songs."</A></TD>\n");
            }
    fputs($mfile, "</TR>\n");
    }
    }if ($nothing==1) fputs($mfile, "<tr align=middle bgColor=#ffffff><td colspan=4>空</td></tr>");
    fputs($mfile, "</TBODY></TABLE></body></html>\n");
    fclose($mfile);也就 是 说把 俄echo 改写成 fputs ,别忘了fopen fclose,有flock当然更好,这样基本就可以了(个别地方要改,但不是很多)。如果觉得费劲,也可以编写个类来实现,不难,你自己试试。
      

  2.   

    crontab是LINUX和UNIX里面的定时运行服务