flush()
愚蠢的建议,但是......您是否尝试过在开始输出缓冲之前向客户端发送一些数据,然后是 a ?我能想到的唯一其他解决方案是逃避缓冲区,但我可以想象它会很麻烦,正如你所说。
也许是帮助打破缓冲区的助手......
function OBWanCallback($buffer)
{
if( OBWan::$isFinished )
{
// -- Actual callbacks go here ...
}
return $buffer;
}
OBWan::startbuffer('OBWanCallback');
[ // -- Example functionality
self::$callback = $callback;
ob_start(self::$callback);
]
// -- in some code far, far away ...
OBWan::suspendbuffer();
[ // -- Example functionality
self::$buffercache = ob_get_clean();
]
echo " ";
flush();
OBWan::resumebuffer();
[ // -- Example functionality
ob_start(self::$callback);
echo self::$buffercache;
self::$buffercache = "";
]
// -- in some code far, far away ...
OBWan::outputbuffer();
[
self::$isFinished = true;
return ob_get_clean();
]
如果您已经实现了深度,则需要说明您已实现的缓冲区的深度。