CodeIgniter"内容编码错误"

Ale*_*lex 6 php apache encoding codeigniter

有没有人知道如何$config['compress_output'] = true在CodeIgniter中找到泄漏的位置引起这个"内容编码错误" ?

我试图调试这个错误好几天了,但我似乎无法找到漏洞的位置.LogLevel是的,debug但是当发生此错误时,我在日志中看不到任何信息.

那么,任何想法如何调试这个?

UPDATE

我真的不想禁用该compress_output功能,我只是想看看如何跟踪错误产生的位置

UPDATE2

我一遍又一遍地看着控制器中是否有任何输出......并且没有输出,所以其他一些必须是错误引发的.没有模型/数据库,只有控制器,库,帮助器和视图

Jor*_*son 17

此问题是输出缓冲开始的位置.检查config变量是否system/core/Output.php_display().在很多代码运行后,它启动gzipped缓冲.这使得在缓冲开始之前输出的可能性已经发生.

随着compress_output集来false也没关系,因为没有进行编码.随着它设置为true你最终混合内容.某些输出是编码的,有些不是导致压缩错误的输出.

有两种解决方案:

1)您可以将compress_outputset设置为false并添加ob_start('ob_gzhandler');到index.php文件的顶部.这将确保所有输出始终被gzip压缩,包括错误.

2)另一种解决方案是添加ob_flush();之前ob_start('ob_gzhandler');system/Output.php.这将在没有错误时进行gzip输出,并在出现错误时为您提供未编码的内容.

我认为2是更好的解决方案,应该由CodeIgniter团队实施.但是如果您不想使用系统代码(升级时更改将会消失),那么1对您来说是更好的解决方案.