我似乎对PHP输出缓冲感到困惑.我有这样的代码:
function return_json($obj) { ob_get_clean(); ob_start(); header("Content-Type: application/json"); echo json_encode($obj); exit; }
但它似乎不喜欢ob_get_clean().我之所以这样做,是因为某些HTML可能会在达到这一点之前意外生成,但我认为这就是你的意图.
我错过了什么?
要使用ob_get_clean(),您必须确保在某些时候您先前有ob_start()'ed.否则,没有要清理的缓冲区,所有内容都已刷新到用户代理.
使用该ob_get_level()
函数查看输出缓冲区是否处于活动状态并退出:
while (ob_get_level()) { ob_end_clean(); }