输出缓冲的优缺点是什么?

Ver*_*on1 7 php output-buffering

我在许多网站上看过使用过

ob_start(); 
Run Code Online (Sandbox Code Playgroud)

可以增强你的页面加载时间,因为它将php存储在一个变量中并一次性显示它而不是一点点处理php.

它也非常有用

header('location: /');
Run Code Online (Sandbox Code Playgroud)

有人说这是意大利面条代码,但只要代码对任何程序员都清晰简洁,那么这应该不是问题,对吧?

您对使用它有什么想法,以及您设置为输出缓冲的内容,对于我应该或不应该使用它的方式,时间和原因有利有弊.

Sim*_*mon 6

这个问题对这个话题有一些非常好的评论


sde*_*ser -1

有些用户不太了解 php。所以他们错误地使用了 ob_start 。

如果您使用 header()、cookie()、session 等标头函数,则无需发送任何输出。这些函数必须在输出之前使用。

但有些用户使用 ob_start 或输出缓冲函数停止发送输出。

所以你可以使用 javascript 或元转发来转发用户。

<script language="javascript"> window.location = 'some.php'; </script>
Run Code Online (Sandbox Code Playgroud)

或者您可以使用元刷新来转发用户。

<META HTTP-EQUIV="Refresh" CONTENT="0;URL=some.php"> 
Run Code Online (Sandbox Code Playgroud)

如果你确实需要使用标头功能,你一定不要发送任何输出(不要忘记输入字符或空格或UTF-8签名也被输出)