标题不言自明。
我对PHP有很多经验,但我不确定header
和ob_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
?
还是以其他方式工作?
答案 0 :(得分:15)
header()
确实忽略了输出缓冲。使用输出缓冲的部分原因是,因为响应被缓冲,所以您可以“乱序”发送HTTP标头。一旦发送任何类型的输出,您就无法发送HTTP标头(除非该输出被缓冲)。