PHP 输出缓冲不起作用!

发布于 2024-11-02 23:45:50 字数 213 浏览 5 评论 0原文

ob_start();

for($i=1; $i<=10; $i++){
  echo 'FUU';
  $output = ob_get_contents();
}

echo $output;
ob_end_flush();  

所以我得到了 10 个 FUU,而不是 1 个!为什么我的 ob_start() 不起作用?

ob_start();

for($i=1; $i<=10; $i++){
  echo 'FUU';
  $output = ob_get_contents();
}

echo $output;
ob_end_flush();  

So instead of one FUU I get 10! Why does my ob_start() not work?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

牵你的手,一向走下去 2024-11-09 23:45:50

我认为你不明白它在做什么。下面是一个演练:

$i = 1
Output buffer = FUU
ob_get_contents()/$output = FUU

$i = 2
Output buffer = FUUFUU
ob_get_contents()/$output = FUUFUU

$i = 3
Output buffer = FUUFUUFUU
ob_get_contents()/$output = FUUFUUFUU

当您在每次迭代中调用 ob_get_contents 时,它会获取已 echo 编辑的所有内容。

I don't think you get what it's doing. Here's a walk through:

$i = 1
Output buffer = FUU
ob_get_contents()/$output = FUU

$i = 2
Output buffer = FUUFUU
ob_get_contents()/$output = FUUFUU

$i = 3
Output buffer = FUUFUUFUU
ob_get_contents()/$output = FUUFUUFUU

When you call ob_get_contents each iteration, it's getting everything that has been echoed.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文