对于对脚本开始时从 ob_get_level 获取返回值 "1" 感到困惑的用户:这可能意味着 PHP ini 指令 "output_buffering" 未设置为关闭 / 0。如果此指令未关闭,PHP 会自动为所有脚本启动输出缓冲(这就像在脚本的第一行调用了 ob_start)。
如果您的脚本可能最终位于任何服务器上,并且您不希望最终用户配置其 INI,则可以在脚本的开头使用以下内容,如果输出缓冲已启动,则停止输出缓冲
<?php
if (ob_get_level()) ob_end_clean();
?>
或者,如果您始终希望在脚本的开头有一个输出缓冲,则可以使用相反的操作
<?php
if (!ob_get_level()) ob_start();
?>