gpt4 book ai didi

php - CodeIgniter "content encoding error"

转载 作者:可可西里 更新时间:2023-11-01 13:04:54 25 4
gpt4 key购买 nike

是否有人知道如何在 CodeIgniter 中使用 $config['compress_output'] = true 找到导致此“内容编码错误”的泄漏点?

我已经尝试调试这个错误好几天了,但我似乎无法找到泄漏的位置。 LogLevel 位于 debug 但发生此错误时我在日志中看不到任何信息。

那么,有什么想法可以调试这个吗?

更新

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

更新2

我一遍又一遍地查看 Controller 中是否有任何输出......但没有,所以肯定是在其他地方引发了错误。没有模型/数据库,只有 Controller 、库、助手和 View

最佳答案

这个问题是输出缓冲开始的地方。 config 变量的检查位于 _display()system/core/Output.php 中。它在大量代码已经运行后启动 gzipped 缓冲。这使得输出有可能在缓冲开始之前发生。

compress_output 设置为 false 没关系,因为没有任何内容被编码。将其设置为 true 您最终会得到混合内容。有些输出是编码的,有些不是,这会导致压缩错误。

有两种解决方案:

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

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

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

关于php - CodeIgniter "content encoding error",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10971191/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com