Aus*_*yde 11 php header output-buffering
标题是不言自明的.
我对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;
Run Code Online (Sandbox Code Playgroud)
该header函数是否忽略输出缓冲,因此所有标题都在内容之前发送,因为它是echo在header调用之后编辑的?
或者它以其他方式工作?
cle*_*tus 17
该header()确实忽略输出缓冲.使用输出缓冲的部分原因是,因为响应被缓冲,所以您可以"乱序"发送HTTP标头.一旦发送任何类型的输出,您就无法发送HTTP标头(除非该输出被缓冲).