【问题标题】:how to use ob_start?如何使用ob_start?
【发布时间】:2010-04-21 15:21:03
【问题描述】:

我正在为一个项目使用 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 对象)的所有和填充部分。我应该在我的 html 代码所在的位置使用 ob_start 和 ob_end_flush 还是在调用此模板的每个 php 文件中包含?

有什么想法吗?谢谢。

【问题讨论】:

  • 我不清楚你想用 ob_start() 做什么。
  • 其实我想使用 ob_start 的主要原因是添加 gzip 压缩。

标签: php templating ob-start


【解决方案1】:

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

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

ob_start('ob_gzhandler');

【讨论】:

  • 实际上我想使用 ob_start 的主要原因是添加此压缩。
【解决方案2】:

我猜display 方法实际上输出了模板,所以你应该用ob_startob_end_flush 包装它。但是,我并没有真正看到在单个函数调用中使用 ob_end_flush 的优势。

【讨论】:

    猜你喜欢
    • 2012-06-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-02
    • 1970-01-01
    • 2011-08-26
    • 2011-04-25
    • 1970-01-01
    相关资源
    最近更新 更多