我习惯了在输出开始后无法发送标头。事实上,我指望它。
在我正在处理的应用程序中,每次成功更新或插入查询后,页面都会通过header('Location: ...')
调用重新加载。那是因为我不希望带有 POST 数据的页面可以刷新。
但是在开发过程中,其中一个查询可能只是有一个错误 - 然后我打印出一些调试信息(带有echo
)。这将阻止页面重新加载 - 但自从我升级到 php 5.4 后,它只是重新加载。如果我exit;
在打印调试信息之后只能读取调试信息 - 我不喜欢,因为脚本后面可能会出现更多调试信息。
如果我签headers_sent()
入其中一个回显调用,则表示尚未发送标头。所以看起来它在没有我(故意)打开它的情况下被缓冲。
它当然可能是一个 php.ini 设置,而不是我现在使用 5.4 版的事实,但我找不到它。
有人有想法吗?