• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

用PHP输出静态页面的两种方法

原作者: [db:作者] 来自: [db:来源] 收藏 邀请
第一种:利用模板
  目前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()

 

鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
IIS7.5配置PHP5.3.5发布时间:2022-07-10
下一篇:
php中curl安装——windows下发布时间:2022-07-10
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap