对于对在脚本开始时从 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();
?>