问题标签 [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 回答
1534 浏览

php - 输出缓冲和 FirePHP 出错

我在下面的代码中执行“echo ...”的那 2 行出现无法解释的“标头已在 #... 行发送”错误。

案例的简化版:

我不明白为什么在我打印缓冲区并刷新它之后,FirePHP 会在页面完成后尝试做某事?或者它在尝试什么?我该如何应对这个问题?:(

0 投票
2 回答
699 浏览

php - php 输出缓冲区如何工作(使用 $_SERVER['REQUEST_TIME'] 计算脚本执行时间的问题)

我真的不知道如何表达标题,所以我尽我所能。

我们有一个问题,我们计算最终脚本(基于 Web)的执行时间。

我们做一个简单的

我们发现有时脚本显示的执行时间要长于 X 秒。

我们 100% 确定这不是 mysql、memcached、sphinx 或任何其他常见的罪魁祸首的问题。请......只是假设它不是“我们的目的”阻止它。

我们甚至在脚本中添加了这个简单的执行时间检查方式,在任何繁重的处理完成之前,仍然有一些命中。主要是远在海外的客户。

所以我认为这一定与输出缓冲区有关。

所以问题如下:

在 php + apache 中,输出缓冲区如何工作?假设您有以下内容:

在此示例中,假设您有一个最大速度为 2KB/s 的客户端连接。

所以在最理想的情况下,他需要 5 秒才能收到“HTML Body Head”

这是否意味着执行“Mysql 查询#1”需要 5 秒?

我想你应该已经明白了。缓慢的客户端连接是否会影响处理脚本所需的时间。

更进一步:是否有任何 php.ini 设置会影响这一点,flush()/ob_flush() 是否有影响?

谢谢。

0 投票
2 回答
686 浏览

php - ob_get_contents 中未执行的 PHP 代码

我正在尝试通过以下方式捕获我的控制器类(yii 框架)的输出:

编辑:

似乎与使用有关

令我惊讶的是,输出包含未执行的 PHP 代码!

PHP 如何回显未执行的 PHP 代码?如何获得生成的 HTML?

0 投票
2 回答
5452 浏览

session - session_regenerate_id() - 已在单元测试 Yii 控制器中发送的标头

我正在尝试对我的控制器(Yii 框架)进行单元测试。

当我做

为了登录,我收到以下错误:

我已经尝试通过将其放在类的开头来缓冲输出:

我还将 ob_clean() 放在 setUp() 中,将 ob_end_clean() 放在 tearDownAfterClass() 中。

我仍然收到标头已发送的消息。文件中没有空格或换行符,当我注释掉特定的测试方法时,它可以完美运行。login() 似乎导致了问题。

任何人都知道如何防止这种情况/也许对控制器进行不同的单元测试?

谢谢,B先生

0 投票
2 回答
304 浏览

zend-framework - 如何阻止 ZF 在开头发送空字符?

我正在使用具有 REST API 的 ZF 开发应用程序。一切都很顺利,只是我的 XML 开头有一个空白字符,因此 XML 违反了开头有 XML 声明的规则。我正在尝试使用 javascript/jquery 来使用它,但在 firebug 的控制台上出现以下错误:

XML 解析错误:XML 或文本声明不在实体的开头

在 SO 和网络上的其他地方有许多帖子讨论了这一点。这是由于输出缓冲,我已经尝试使用 ob_flush 和 flush 如其他地方所建议的那样,但我只是不知道如何去做,因为这些帖子没有提到这些应该去哪里。也许我不正确理解输出缓冲但是谁能告诉我我需要在哪里放置这些调用来删除这个空白字符?

我真的很感谢您的回复,因为我现在已经花了好几个小时来解决这个问题(我花了很长时间才弄清楚这首先是问题所在)而且我对此很生气!哈哈!

谢谢

0 投票
1 回答
283 浏览

php - 如果我经常使用 echo,我应该使用输出缓冲吗?

嗨,这是一个基本问题,但我不确定,所以我问你:

如果我的 html 代码中有超过 100 个 php 回显,则如下所示:

文件.php:

我应该使用输出缓冲吗?如果是这样,那将是“显示”输出的正确方法(或功能)?

提前致谢 !

0 投票
2 回答
1638 浏览

php - 获取缓冲区内容时如何触发 ob_start() 回调?

我有一个脚本,它Obfuscate()在显示内容之前对内容运行自定义电子邮件混淆类的功能,如下所示:

这一切都很好。但是,我已经完全重写了我的视图架构,所以我需要从类函数中运行电子邮件混淆并返回该字符串(然后被echo编辑)。我最初将上面的内容重写为:

不幸的是,$this->obfuscator->Obfuscate()回调没有被触发。从那以后,我了解到ob_get_contents()不会触发回调,但也尝试过ob_get_clean()ob_get_flush()无济于事。

那么,在触发回调后如何获取缓冲区的内容呢?

0 投票
1 回答
1974 浏览

php - 如何在 Symfony2 中打开输出缓冲?

如何为我的 Sf2 应用程序的每个请求打开 output_buffering?

我需要这个来使用FirePHPBundle,但我更愿意在应用程序范围内使用它。

0 投票
2 回答
1983 浏览

php - 使用 php 进行输出缓冲和 jQuery 发送 ob_get_contents

我正在尝试使用输出缓冲来捕获我的 php 页面的内容:

我将内容分配ob$contents使用ob_get_contents();This works,并且回显 $contents 会复制 html 页面。

但是,在我的 jQuery 中,我试图将其分配给隐藏的文本字段(“链接”),使用:

但是这不起作用..而且我有一种感觉,因为我太早地访问 $contents 但不太确定......有什么想法吗?

0 投票
1 回答
416 浏览

php - PHP:缓存一个整洁的解析字符串

在我的页面顶部,我有这段代码来检查缓存并启动输出缓冲:

然后在底部,我使用它来整理输出缓冲区并缓存页面,但似乎没有任何内容被缓存......

有谁知道该怎么做?