【问题标题】:PHP output buffering issuesPHP 输出缓冲问题
【发布时间】:2017-04-06 15:31:07
【问题描述】:

由于两天我试图停止服务器上的缓冲区,我禁用了 php.ini 中的 output_buffering 我检查了它是否被 phpinfo() 禁用。

在 xampp(Localhost) 下它就像一个魅力,相同的测试代码(下),代码运行无需等待一切完成,没有缓冲区,梦想 =)

在我的服务器上,output_bufferingphpinfo() 中显示No value,所以我认为它已被禁用,但它仍然无法正常工作,我需要等到循环完成他的工作,无论如何要让这项工作像在我的 xampp 上一样配置?谢谢!

在这里测试代码:

for($i=1; $i<=5000; $i++){
    echo $i."<br>";

    flush();
    usleep(1000);
}

ps:我在 Debian 和 Ubuntu 上使用 php 5.6 和 php7 进行了测试,我的 xampp 自然运行在 windows(10) 上

【问题讨论】:

  • 如果你想要这种浏览器交互,你应该使用客户端代码
  • How to flush output after each `echo` call? 的可能重复项。查看第二个答案,该答案似乎通过发送内容类型标头来解决。

标签: php output buffering


【解决方案1】:

你需要使用ob_flush()flush()

您可能会问有什么不同? That's a good question.

【讨论】:

  • 谢谢,我刚试过但还是不行 :( 等待完成后才让我看到输出
【解决方案2】:

现代浏览器在响应正文包含一定数量的数据(大约 1024 字节)之前不会显示任何内容。以下内容可能看起来有点老套 - 但就像这样,它可以按预期工作:

<?php
echo '<!-- xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx -->';
flush();
for($i=1; $i<=5000; $i++) {
  echo $i."<br>";
  flush();
  usleep(1000);
}
?>

【讨论】:

  • 谢谢,它仍然无法工作 :( 我不知道为什么,在 xampp 上工作就像一个魅力
猜你喜欢
  • 2014-10-01
  • 1970-01-01
  • 2013-10-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多