0

我在使用 suPHP 的共享主机上有一个脚本。我需要无缓冲的输出(所以我可以在开始一个冗长的子程序之前刷新)但无论如何都找不到让它工作,所以我的刷新调用基本上只是被忽略了。我已经尝试调整 .htaccess(这会导致 500 内部错误),我尝试在帐户级别和特定脚本的文件夹级别修改 php.ini(这两者似乎都被完全忽略了,我例如,不能使用 engine = Off 或 suphp_engine = Off 禁用 php 引擎)。

我怎样才能禁用缓冲(可能需要询问我的托管服务提供商,但我应该要求他们具体更改什么)?suPHP甚至可以吗?

4

2 回答 2

1

在与我的托管支持讨论了一些之后,我终于得到了 php.ini 的认可,但是禁用或更改缓冲区大小没有任何效果。它的文档记录相当差(据我所知,对 php 官方文档的一条评论)但似乎 suPHP 缓冲了内部 php 缓冲区之后的所有输出。所以flush正在工作......但是所有输出都被suPHP再次缓冲并且没有办法解决它。因此,如果您使用的是 suPHP,您将被困在无法关闭的第二个缓冲区后面,最终结果是刷新将无效。您可以使用其他缓冲区命令,例如缓冲,以便您可以通过脚本进一步发送标头来控制流,但 suPHP 背后的总输出在输出之前会通过缓冲区。

于 2011-04-15T16:31:40.073 回答
0

执行时会发生什么flush()?你得到一个错误,或者根本没有输出?如果缓存发生在网络服务器级别,您可能需要填充其缓冲区以使刷新生效。尝试在刷新之前发送大量空白,看看它是否更有效。

于 2011-04-14T16:14:03.993 回答