如何使用ob_start?

时间:2010-04-21 15:21:04

标签: php templating ob-start

我正在为项目使用PHPSavant模板系统,我不知道如何在此使用ob_start。

我之前尝试过......例如,

page_header.php
-- ob_start();

page_footer.php
-- ob_end_flush();

但是因为现在我正在使用模板系统..我不知道在哪里放这些功能。

$template = new Savant3();
$template->some_var = $some_value;
$template->display('default_template');

default_template包含所有和使用一些变量填充部分(设置为$ template对象)。我应该使用ob_start和ob_end_flush我的html代码是什么,或者包含在调用此模板的每个php文件中?

有什么想法吗?感谢。

2 个答案:

答案 0 :(得分:2)

当PHP脚本终止时,您不必强制刷新,刷新缓冲区。

只要将ob_start()放在脚本的开头,那就是最好的地方。实际上,您可能希望强制GZIP压缩,这将大大加快页面显示速度。似乎大多数服务器都禁用了GZIP,但您可以通过以下方式在PHP中强制启用它:

ob_start('ob_gzhandler');

答案 1 :(得分:1)

我猜display方法实际上输出了模板,因此应该使用ob_startob_end_flush进行包装。但是,我并没有看到在单个函数调用周围使用ob_end_flush的优势。