为什么在内容已经回显后,此标头位置重定向是否有效?

The*_*can 3 php apache redirect buffer header

<?
echo "lalala";
header("Location: http://www.google.com/");
Run Code Online (Sandbox Code Playgroud)

如果我把它放在一个简单的php文件中,并通过mod-php(PHP版本5.3.2-1ubuntu4.10)提供标准的apache2服务器,重定向到谷歌工作.

<?
echo "lalala";
flush();
header("Location: http://www.google.com/");
Run Code Online (Sandbox Code Playgroud)

这段代码显然不会产生有效的重定向.

我的问题是如何处理第一个代码及其工作原理.因为我记得有时候这样的事情是不可能的.mod-php或apache是​​否足够智能以缓冲整个请求并在内容之前安排标头?

和:

如果我确保不手动刷新输出,我可以依赖此吗?因为它会使我的应用程序更容易......

dio*_*emo 7

默认情况下可能启用输出缓冲.如果要依赖此功能,则应手动启用它.

http://php.net/manual/en/function.ob-start.php