• 用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()

  • 相关阅读:
    [LINUX-05]Linux的进程线程及调度
    如何感性地理解EM算法?
    [LINUX-04]linux进程、调度、线程、进程上下文等几点理解
    centos定时删除log文件
    关于 Nginx 配置的一些疑惑, Nginx 根据cookie 进行rewrite
    oracle中如何创建表的自增ID(通过序列)
    Windows下PHP7/5.6以上版本 如何连接Oracle 12c,并使用PDO
    Tomcat不能访问ln -s软连接文件夹的前因后果
    rm命令删除文件时排除特定文件
    nginx中的url转发
  • 原文地址:https://www.cnblogs.com/smallwind/p/2935235.html
Copyright © 2020-2023  润新知