How do headers work with output buffering in PHP?

五迷三道 提交于 2019-11-29 17:52:02

问题


Title is self-explanatory.

I have a good bit of experience with PHP, but I am not sure how the header function works between ob_start() and ob_end_clean().

Consider this:

ob_start();

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

$output = ob_get_contents();
ob_end_clean();

echo $output;

Does the header function ignore the output buffering, and thus all headers get sent before the content because it is echoed after the header call?

Or does it work some other way?


回答1:


The header() does indeed ignore output buffering. Part of the reason to use output buffering is so you can send HTTP headers "out of order" since the response is buffered. You can't send HTTP headers once you've sent any kind of output (unless that output is buffered).



来源:https://stackoverflow.com/questions/3111179/how-do-headers-work-with-output-buffering-in-php

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!