先做一个静态页tpl.htm:
以下是它的代码:
 <html>
 <head><title>{-标题-}</title></head>
 <body bgcolor={-背景-}></body>
 </html>以下是程序do.php:<?php 
$files='xxx.htm';//这是生成后的页,名字一般用date(YmdHis)生成;
$tpl='tpl.htm';
$new_title='新标题';
$new_bg='#ffffff';
//先用fread调用$tpl
$fp=fopen($tpl,"r");
$tpl=fread($fp,filesize($tpl));//替换;
$content=str_replace('{-标题-}',$new_title,$tpl);
$content=str_replace('{-背景-}',$new_bg,$tpl);//存储新页;$fp=fopen($files,"w");
$fputs=fputs($fp,$content);
if ($fputs)
{
   echo '完成';
   fclose($fp);
}
?>如是linux主机,要将所在目录设为777属性

解决方案 »

  1.   

    //建立以数据库中此条信息的info_id为名字的网页
    $name=$info_id.".htm";
         $newname="../news/$name";
    //建立临时文件
    $fp = fopen("../news/tmp.htm", "w");
         fclose($fp);
    //将新闻网页newsdetail.php 转换为静态的网页
    $l="php ../index/newsdetail.php > ../news/tmp.htm ";       
    system(" $l ,$arr ");  
    //去掉前四行多余信息行 将结果给最终生成的静态页
    $del=" tail +4 ../news/tmp.htm > $newname";
    passthru(" $del");
    //删除临时文件
    unlink("../news/tmp.htm");
      

  2.   

    <?php
    /**
     *  作者: 徐祖宁 (唠叨)
     * 
     *  类: 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);
      }
    }
    ?>
      

  3.   

    十分感谢大家的支持,我的要求是这样的,就象这个CSDN一样的,在INPUT里面输入如文字,插入图片,表格后,自动的生成SHTML或HTML,如PHPE中的一样。
          我要好好的学,请给指点,实例最好啊。
      

  4.   

    没有什么自动的,只不过程序把很多过程掩盖了,
    关键是自己清楚程序运行的过程,如何提交表单,如何导入到数据库,如何读取并显示数据,带着这些问题,你就会很快做好。多看点资料,CSDN上有好多高手可以为你解决很多实际操作中遇到的意想不到的问题。
      

  5.   

    我现在的想法是,比如在发布新闻时,新闻的内容照样放进数据库中去,但在读者浏览
    时,看到的应该是htm文件。而且,新增的新闻不是马上发布,要待审批后才能发布,
    也就是说,在审批完成后才生成html文件。如果在每条新闻中加一个字段,比如filehtml,
    在生成一个html文件后,在该字段填入比如20031230.html。那么在读新闻列表时,
    就根据每条新闻的id去取相应的html,比如
    <?
    $sql=mysql_query("select...from...");
    while($r=mysql_fetch_array($sql))
    {
    ?>
    <a href="<? echo($r['filehtml'])?>">xxxx</a>
    <?
    }
    ?>
    这样的方法可以吗?如果可以的话,我不知道怎么将提交到数据库中的东西生成HTML咯,
    请指教
      

  6.   

    为什么不看PHP手册中javascrip和PHP结合了,在静态的HTML页面插入JAVASCRIP再在
    JAVASCRIP引入PHP页,这PHP页就是个象留言本一样做啊,后台有个数据库再用PHP的
    echo 输出不就行了,我看到的许多大的网站也是这样开发的啊!
      

  7.   

    <body>
                           <!-- InstanceBeginEditable name="jsk" --> 
                            <script>var tc_user="";var tc_class="7";</script>
    <script src="http://stat.t2t2.com/stat.js"></script>                        <br>
                            <script src="http://www.hycompany.com/count/count.php" language="">
    </script>
                            <br>
                            <br>
                            <br>
                            <br>
                            <br>
                            <br>
                            <!-- InstanceEndEditable --><br>
                            
                            </div>
                         </div>
                      </td>
                    </tr>
                  </table>
                </td>
                <td bgcolor="#F0F0F0" valign="top" align="center" width="585"><!-- InstanceBeginEditable name="EditRegion5" --> 
                  <div align="center"></div>
    </body>
      

  8.   

    请问各位侠:一个网站中,要把所有的php动态页面都生成静态的,那怎么办?谢谢!!!