ob_end_flush()突然退出PHP脚本

时间:2013-06-13 10:44:33

标签: php

使用其他开发人员和设计人员使用的共享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_dump ob_end_flush() ob_end_flush()也会退出。使用CodeIgniter,但在框架外部尝试此代码会产生相同的结果。

为什么{{1}}会突然开始导致脚本每次都死掉,这是否有原因?我应该检查是否有任何PHP设置?

1 个答案:

答案 0 :(得分:1)

最后发现问题 - 当我的代码似乎开始在CodeIgniter之外工作时,我检查了CodeIgniter的index.php引导程序文件并遇到了有人添加的代码:

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

这就是原因。