求怎样生成html页面?

解决方案 »

  1.   

    自己用的,比较简陋
    $html = new html;
    $html->dirname = '../html/'.$itemid ;
    $html->filename = mysql_insert_id().'.html';
    $html->filecontact = $contact;
    $html->createhtml();
    class html 

      var $dirname; //指定文件存放路径(文件夹名称)
      var $filename; //html文件名
      var $filecontact; //html文件内容  function createdir(){
    if (!is_dir($this->dirname)){
      mkdir($this->dirname);
    }
      }
      //生成html 
      function createhtml(){
    $this->createdir();
    $fp=@fopen($this->dirname.'/'.$this->filename,'w') or die("Failed to open the file ".$this->dirname.'/'.$this->filename." !"); 
    @fwrite($fp,$this->filecontact);
    fclose($fp); 
      }
      function deletehtml(){
    unlink($this->dirname.'/'.$this->filename); 
      }
    }
      

  2.   

    是这样的吗?.NET中应该是这样的吧  你写的我有点看不懂哦1.定义(template.htm)html模板页面 <html> 
      <head> 
      <title></title> 
      <meta http-equiv="Content-Type" c> 
      </head> 
      <body > 
      <table $htmlformat[0] height="100%" border="0" width="100%" cellpadding="10" cellspacing="0" bgcolor="#eeeeee" style="border:1px solid #000000"> 
      <tr> 
      <td width="100%" valign="middle" align="left"> 
      <span style="color: $htmlformat[1];font-size: $htmlformat[2]">$htmlformat[3]</span> 
      </td> 
      </tr> 
      </table> 
      </body> 
      </html> 
    2.asp.net代码: 
     
    //---------------------读html模板页面到stringbuilder对象里---- 
      string[] format=new string[4];//定义和htmlyem标记数目一致的数组 
      StringBuilder htmltext=new StringBuilder(); 
      try 
      { 
      using (StreamReader sr = new StreamReader("存放模板页面的路径和页面名")) 
      { 
      String line; 
      while ((line = sr.ReadLine()) != null) 
      { 
      htmltext.Append(line); 
      } 
      sr.Close(); 
      } 
      } 
      catch 
      { 
      Response.Write("<Script>alert('读取文件错误')</Script>"); 
      } 
      //---------------------给标记数组赋值------------ 
      format[0]="background=\"bg.jpg\"";//背景图片 
      format[1]= "#990099";//字体颜色 
      format[2]="150px";//字体大小 
      format[3]= "<marquee>生成的模板html页面</marquee>";//文字说明 
      //----------替换htm里的标记为你想加的内容 
      for(int i=0;i<4;i++) 
    {   htmltext.Replace("$htmlformat["+i+"]",format[i]); 
      } 
      //----------生成htm文件------------------―― 
      try 
      { 
      using(StreamWriter sw=new StreamWriter("存放路径和页面名",false,System.Text.Encoding.GetEncoding("GB2312"))) 
      { 
      sw.WriteLine(htmltext); 
      sw.Flush(); 
      sw.Close(); 
      } 
      } 
      catch 
      { 
      Response.Write ("The file could not be wirte:"); 
      } 
    小结 
      用此方法可以方便的生成html文件。程序使用了是循环替换,因此对需替换大量元素的模板速度非常快
    同时 支持下我的网站 http://www.bework.com.cn/
      

  3.   

    哦 发错了
     原来是PHP呀
     不好意思
      

  4.   

    <?php
    class CreateHtml
    {
     function mkdir( $prefix= 'article' )
     {
      $y = date('Y');
      $m = date('m');
      $d = date('d');
      $p=DIRECTORY_SEPARATOR;
      $filePath='article'.$p.$y.$p.$m.$p.$d;
      $a=explode($p,$filePath);
      foreach ( $a as $dir)
      {
       $path.=$dir.$p;
       if(!is_dir($path))
       {
        //echo '没有这个目录'.$path;
        mkdir($path,0755);
       }
      }
      return $filePath.$p;  
     }
     function start()
     {
      ob_start();
     }
     function end()
     {
      $info     = ob_get_contents();
      $fileId   = '12345';
      $postfix  = '.html';
      $path     = $this->mkdir($prefix= 'article');
      $fileName = time().'_'.$fileId.$postfix;
      $file=fopen($path.$fileName,'w+');
      fwrite($file,$info);
      fclose($file);
      ob_end_flush();
     }
    }
    ?>
    <?php
    $s=new CreateHtml();
    $s->start();
    ?>
    <html>
    <body>
    HTML页面文字
    </body>
    </html>
    <?php
    $s->end();
    ?>
      

  5.   

    伪静态:
        apache的mod_rewrite,或者iis的rewrite生成html:
        1. xsl
        2. 自己写模版,然后用字符串替换或者正则表达式来进行替换。
      

  6.   

    写一个脚本去读取要生成的页面的动态程序链接, 存成一个html文件就可以了
      

  7.   

    静态页面生成最基本的思想就是写文件.//打开.
    $handle = fopen("index.html","w");$content = "静态文件内容";//写入
    fwrite($handle,$content);其他的操作无非就是对内容处理,得到你想要的..
      

  8.   

    $CONFIG['obstart']==1 ? ob_start('ob_gzhandler') : ob_start();
    ...................
    $output = ob_get_contents();
    ob_end_clean();
    $CONFIG['obstart'] == 1 ? ob_start('ob_gzhandler') : ob_start();
    $path="********";
    writeover($path,$output);
      

  9.   

    其实仔细看看php里的东西,和http协议的某个特性。
    就可以做到无须模板,完全自动生成,更新。
    此已经实现。