2

在其他开发人员和设计人员使用的共享 Web 服务器上工作。处理 XML 文档。直到前几天,以下代码一直对我有用:

while (ob_get_level() > 0) { ob_end_flush(); }

从那时起,无论何时ob_end_flush()达到,脚本似乎都会死掉,好像ob_end_flush()有一个exit(). 即使打开错误报告/display_errors,也不会输出错误。注释掉上述行时,脚本将完全运行,仅在完整脚本运行后才显示脚本输出。@ob_end_flush()没有任何区别。ob_get_level()1var_dumpingob_end_flush()也会退出。使用 CodeIgniter,但在框架之外尝试此代码会产生相同的结果。

有什么原因ob_end_flush()会突然开始导致脚本每次都死掉吗?我应该检查任何 PHP 设置吗?

4

1 回答 1

1

终于发现了问题——当我的代码似乎开始在 CodeIgniter 之外工作时,我检查了 CodeIgniter 的 index.php 引导文件,发现有人添加了这段代码:

if (substr_count( $_SERVER['HTTP_ACCEPT_ENCODING'], 'gzip')){ 
      ob_start("ob_gzhandler");
} 
else {
     ob_start(); 
}

这就是原因。

于 2013-06-13T12:27:48.633 回答