有没有好点的PHP生成静态网页的代码?

解决方案 »

  1. 這個涉及的框架了,我的框架是echo出一個整頁面,估計生成靜態不難
      

  2. 我是用smarty模板輸出生成靜態頁的
      

  3. http://blog.yctin.com/archives/php-using-output-buffering-to-create-static-page/我来做 SEO 了 A_A
      

  4. 我也是要用smarty 的,可是具体一些的能跟我讲下吗?不明白静态生成的原理
      

  5. 在模板替换之前,即程序最初位置 ob_start(),
    在模板替换之后,$out_data = ob_get_contents();
    ob_end_clean();
    然后将$out_data 转换成静态页面。
      

  6. php生成静态网页的两种方式 
    转自:http://www.phpzc.com/read.php?tid-554-keyword-%BE%B2%CC%AC.html第一种:利用模板。目前PHP的模板可以说是很多了,有功能强大的smarty,还有简单易用的smarttemplate等。它们每一种模板,都有一个获取输出内容的函数。我们生成静态页面的方法,就是利用了这个函数。用这个方法的优点是,代码比较清晰,可读性好。
    这里我用smarty做例子,说明如何生成静态页
    <?php
    require('smarty/Smarty.class.php');
    $t = new Smarty;
    $t->assign("title","Hello World!");
    $content = $t->fetch("templates/index.htm");
    //这里的 fetch() 就是获取输出内容的函数,现在$content变量里面,就是要显示的内容了
    $fp = fopen("archives/2005/05/19/0001.html", "w");
    fwrite($fp, $content);
    fclose($fp);
    ?> 
        第二种方法:利用ob系列的函数。这里用到的函数主要是 ob_start(), ob_end_flush(), ob_get_content(),其中ob_start()是打开浏览器缓冲区的意思,打开缓冲后,所有来自PHP程序的非文件头信息均不会发送,而是保存在内部缓冲区,直到你使用了ob_end_flush().而这里最重要的一个函数,就是ob_get_contents(),这个函数的作用是获取缓冲区的内容,相当于上面的那个fetch(),道理一样的。代码:
    <?php
    ob_start();
    echo "Hello World!";
    $content = ob_get_contents();//取得php页面输出的全部内容
    $fp = fopen("archives/2005/05/19/0001.html", "w");
    fwrite($fp, $content);
    fclose($fp);
    ?>  
      

类似问题 »