【发布时间】:2012-04-27 14:57:03
【问题描述】:
使用以下代码,我缓冲了一个布局文件。 在本地服务器上工作正常,但在实时服务器上它会一直缓冲直到 php 放弃。这导致旋转进度条和页面中所有 javascript 的延迟执行。看起来 ob_end_clean() 并没有真正退出缓冲。
ob_start();
require($layoutfile);
$return = ob_get_contents();
ob_end_clean();
return $return;
当我在刷新缓冲区后回显一个空格时,一切正常。但在这种情况下,我不会在屏幕上打印任何内容。
ob_start();
require($layoutfile);
$return = ob_get_contents();
if(ob_end_clean()) echo " ";
return $return;
有人遇到过这个吗?
【问题讨论】:
-
你试过使用
ob_flush吗? -
@kuba with 'ob_flush' 它删除了 '$return' var
-
很好奇。作为测试,用
if (ob_get_level()) while (@ob_end_clean());替换ob_end_clean();是否允许脚本正常工作? -
@webbiedave 不,这不起作用。它可能与服务器配置有关吗?在其他服务器和本地,它工作正常!
-
我不确定。只有想到的事情是检查服务器上 PHP 版本的任何错误,尝试打开/关闭 Web 服务器中的压缩,检查 Apache SendBufferSize。