标题如何在PHP中与输出缓冲一起使用?

时间:2010-06-24 15:01:40

标签: php header output-buffering

标题不言自明。

我对PHP有很多经验,但我不确定headerob_start()之间的ob_end_clean()函数是如何工作的。

考虑一下:

ob_start();

echo "Some content";
header('X-Example-Header: foo');
echo "Some more content";

$output = ob_get_contents();
ob_end_clean();

echo $output;

header函数是否会忽略输出缓冲,因此所有标头都会在内容之前发送,因为echo调用后它是header

还是以其他方式工作?

1 个答案:

答案 0 :(得分:15)

header()确实忽略了输出缓冲。使用输出缓冲的部分原因是,因为响应被缓冲,所以您可以“乱序”发送HTTP标头。一旦发送任何类型的输出,您就无法发送HTTP标头(除非该输出被缓冲)。