问题标签 [output-buffering]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
734 浏览

php - PHP 输出缓冲不起作用!

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

0 投票
12 回答
22527 浏览

php - 调用 ob_flush() 和 flush(),但浏览器在脚本完成之前不显示任何输出

嗨,请查看以下代码:

不正确?我已经对其进行了测试,但是脚本完成后我的输出显示,有什么解决方案吗?

0 投票
2 回答
186 浏览

php - 困惑的人寻求:“警告:无法修改标题信息”

我非常希望看到 PHP 警告“无法修改标头信息”。为什么?因为它是明智的。您不应该能够在正文之后发送标头。

但是我可以!!如果我在控制器中调试了一些 var 并且之后没有exit立即调试,脚本只会重定向到下一页:一切顺利,我看不到我的 var 转储。

我可以在 PHP 的哪里配置(?)它不缓冲输出?或者是什么导致了这种奇怪的行为!

只是要明确一点:我确实想要PHP 警告,我希望重定向header('Location: ...')工作。

我很确定在我以前的(本地)服务器(都是 W XP)上它确实抛出了输出/标题警告......

编辑
为了说明,用最基本的代码(我没有真正使用,但间接地它是相同的):

答案
@Heandel 错误报告就是一切(包括通知和弃用等)。不过没关系:无论错误显示如何,都应该不可能发送标头。

@tandu 我正在使用我自己的框架,但这也不重要。

@ceejayoz 我的代码中没有一个 ob_start 。我不使用它。(模板 ngin 使用它,但模板不会在回发中触发。)

@Itay Moav 我不在共享主机中。我正在本地使用 Windows XP SP2 上的 PHP 5.3.0 (WAMP)。在我的网络服务器(VPS)上,这不会发生:我收到了一个不错的 PHP 警告。

更新
感谢盖伦

来自 php.ini:

转动它就Off成功了。我不想要自动输出缓冲。谢谢!

0 投票
1 回答
793 浏览

php - output_add_rewrite_var 问题

为什么这不起作用?

取自http://www.php.net/manual/en/function.ob-get-contents.php

我找到了一个修复

修复不起作用

如果我尝试连续运行两次,则修复不起作用,第一次运行良好,最后一次根本不添加“?var = value”。有人有线索吗?

0 投票
1 回答
5636 浏览

php - CodeIgniter - 在发送到浏览器之前编辑输出缓冲区?

我正在研究 PHP 框架CodeIgniter。在将输出刷新给用户之前,我需要一些关于编辑输出的帮助。

通常在 PHP 中,您可以只使用ob_start();然后ob_get_clean();检索内容。

但是,在阅读 CodeIgniter 文档时,他们说所有输出都已缓冲。

有没有人无意中开始第二次ob_start()?或者,任何人都可以谈论 CodeIgniter 输出缓冲,以便我可以编辑它吗?

0 投票
4 回答
9155 浏览

php - 如何判断 ob_start(); 已经被调用

我使用输出缓冲进行 gzip 压缩并访问之前在 PHP 脚本中输出的内容:

现在,如果该脚本包含在另一个已经使用 ob_start() 的脚本中,我会收到警告:

警告:ob_start() [ref.outcontrol]:输出处理程序“ob_gzhandler”不能在第 n 行的文件名中使用两次

所以我想测试是否ob_start()已经被调用。我认为ob_get_status()应该是我需要的,但是在测试中使用它的最佳方法是什么?

0 投票
2 回答
1876 浏览

java - 为进程设置 OutputStream

这是我的问题的片段代码:

运行过程正在产生巨大的输出。如果我将输出重定向到文件,则该过程终止得更快,然后在屏幕上打印输出(标准输出)。由于磁盘性能低、文件系统权限等原因,我不希望将输出重定向到文件。

执行 process.waitFor() 时,Java 将被阻塞,直到进程(被调用者)终止,这可能需要很长时间。所以为了绕过这个问题,我想将进程的标准输出重定向到阅读器的流输入(代码的最后一行)。即,被调用者应该向与阅读器链接的流生成输出,而不是在屏幕上打印输出。

希望我足够清楚。我想知道我该怎么做?任何帮助都会很棒。

0 投票
2 回答
229 浏览

php - php outbuffering 和 header

我正在使用 php 5.3.6 以下是我的代码,它正在产生错误

Warning: Cannot modify header information - headers already sent by (output started at ............

我想做的是在循环处于活动状态时显示每个循环的内容。然后当循环结束时,我需要刷新所有先前的输出或标题并发送一个新标题以刷新当前页面。

0 投票
2 回答
15957 浏览

php - PHP输出缓冲,ob_gzhandler引起的内容编码错误?

谁能解释为什么我收到以下错误?

在代码中,如果echo $gz;注释掉我没有收到错误(但也没有输出!),如果不是我得到(来自 Firefox),

内容编码错误


您尝试查看的页面无法显示,因为它使用了无效或不受支持的压缩形式。


感谢您的帮助,代码如下:

0 投票
3 回答
273 浏览

perl - 在哪些情况下应该更喜欢无缓冲的输出?

通过我上一个问题的讨论,我了解到 Perl 默认提供行缓冲区输出。

如果您想获得无缓冲的输出,则将特殊变量设置$|为 1 即

现在我想知道在哪些情况下应该更喜欢无缓冲的输出?