2010-04-21 199 views
0

我为项目使用PHPSavant模板系统,我不确定如何在此使用ob_start。如何使用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包含使用一些变量(设置为$模板对象)的所有和填充部分。我应该使用ob_start和ob_end_flush来代替我的html代码,或者在每个调用此模板的php文件中都包含这些代码?

任何想法?谢谢。

+0

要使用ob_start()对于什么是我不明白。 – 2010-04-21 15:46:17

+0

其实我想用ob_start的主要原因是要加gzip压缩。 – user187580 2010-04-21 16:01:16

回答

2

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

只要您在脚本的开头放置ob_start(),那就是最好的地方。事实上,你可能想要强制GZIP压缩,这将大大加快你的页面显示。这似乎是最服务器具有Gzip已禁用,但你可以在你的PHP通过迫使它在:

ob_start('ob_gzhandler'); 
+0

其实我主要想用ob_start的主要原因就是加了这个压缩。 – user187580 2010-04-21 16:00:37

1

我想display方法实际上输出模板,所以这是你应该用ob_startob_end_flush包装的方法。不过,我并没有真正看到在单个函数调用周围使用ob_end_flush的优势。