【问题标题】:Outputting HTML in PHP, is there any upside to using ob_start or simply echo $html?在 PHP 中输​​出 HTML,使用 ob_start 或简单地回显 $html 有什么好处吗?
【发布时间】:2017-07-16 10:08:44
【问题描述】:

显然存在可用性和可读性差异,但以下方法是否有任何优点或缺点——尤其是在性能方面?

function method1() {
  ob_start();
  ?><div>some html</div><?php
  echo ob_get_clean();
}

function method2() {
  ?><div>some html</div><?php
}

function method3() {
  echo '<div>some html</div>';
}

特别是在method1method2 之间,添加的ob_start() 是否会导致性能下降?输出HTML的时候还需要用到吗?

【问题讨论】:

    标签: php html ob-start


    【解决方案1】:

    ob_start() 的“典型”用途是缓冲输出,以便您仍然可以使用 setcookieheader 等函数,而不必担心“我是否已经输出了一些东西?”,它'会工作的。老实说,我认为这应该是默认行为,但这只是我。

    ob_start() 在你给它一个回调时获得真正的力量,然而。我个人有这个:

    ob_start(function($html) {
        return preg_replace('/\r?\n\t*/','',$html);
    });
    

    这会在将 HTML 源代码发送到浏览器之前从 HTML 源代码中去除换行符(和后续选项卡),从而将其缩小。

    【讨论】:

    • 酷,我一直在尝试使用 ob_start 以及它维护换行符选项卡的事实,其他一切有时都很方便,有时会导致代码难看,我正在寻找处理它的方法,谢谢这个例子。我仍然想知道它对性能的影响
    猜你喜欢
    • 1970-01-01
    • 2011-05-07
    • 1970-01-01
    • 2011-10-22
    • 2010-12-16
    • 1970-01-01
    • 1970-01-01
    • 2011-05-23
    相关资源
    最近更新 更多