zoukankan      html  css  js  c++  java
  • 用PHP输出静态页面的两种方法

    第一种:利用模板
      目前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);
    ?>
     
     

    ob_start()函数:打开输出缓冲区.

        函数格式 void ob_start(void)

        说明:当缓冲区激活时,所有来自PHP程序的非文件头信息均不会发送,而是保存在内部缓冲区。为了输出缓冲区的内容,可以使用ob_end_flush()或flush()输出缓冲区的内容。

    Flush:刷新缓冲区的内容,输出。

        函数格式:flush()

        说明:这个函数经常使用,效率很高。

    ob_get_contents :返回内部缓冲区的内容。

        函数格式:string ob_get_contents(void)

        说明:这个函数会返回当前缓冲区中的内容,如果输出缓冲区没有激活,则返回 FALSE.

    ob_get_length:返回内部缓冲区的长度。

        函数格式:int ob_get_length(void)

        说明:这个函数会返回当前缓冲区中的长度;和ob_get_contents一样,如果输出缓冲区没有激活,则返回 FALSE.

    ob_end_clean:删除内部缓冲区的内容,并且关闭内部缓冲区

        函数格式:void ob_end_clean(void)

        说明:这个函数不会输出内部缓冲区的内容而是把它删除

    ob_end_flush:发送内部缓冲区的内容到浏览器,并且关闭输出缓冲区

        函数格式:void ob_end_flush(void)

        说明:这个函数发送输出缓冲区的内容(如果有的话)

    ob_implicit_flush:打开或关闭绝对刷新

        函数格式:void ob_implicit_flush ([int flag])

        说明:默认为关闭缓冲区,打开绝对输出后,每个脚本输出都直接发送到浏览器,不再需要调用 flush()

     
  • 相关阅读:
    博文视点大讲堂第20期——Windows 7来了
    程序员如何缓解“电脑病”
    HQL中In的问题详解
    Tomcat、Websphere和Jboss类加载机制
    Hibernate锁机制悲观锁和乐观锁
    软件项目开发典型风险一览过程篇
    XPath实例教程
    CMMI的含义及重点
    自动化测试工具selenium使用介绍
    深入DNS域名解析服务原理
  • 原文地址:https://www.cnblogs.com/shuaixf/p/2237981.html
Copyright © 2011-2022 走看看