0

这是一个示例代码:

ob_start();
include("test.ini");
$string = ob_get_contents();
echo "<br/>";
echo "string: ".$string;

和输出:

testing = ini
string: testing = ini

当我添加

ob_end_clean();

在上面代码的末尾,屏幕上没有输出。

我至少期望字符串在屏幕上回显?为什么没有看到?

4

3 回答 3

1

ob_start(); 开始输出缓冲到内部缓冲区而不是(屏幕),然后当你添加 ob_get_contents(); 它从内部缓冲区复制输出仍然没有打印,并且当 ob_end_clean(); 解释,它将清除所有内部缓冲存储器,没有输出到屏幕。

从 ob_start() 开始;到 ob_end_clean(); 什么都不会打印,我在包含文件时使用此方法以防止在发送标题之前打印一些空白。

于 2013-02-03T11:58:49.947 回答
1

查看ob_get_clean()ob_end_flush()ob_end_clean()之间的区别。

ob_get_clean获取当前缓冲区内容并丢弃当前输出缓冲区。

ob_end_flush丢弃内容,但首先输出缓冲区。

ob_end_clean丢弃最顶层输出缓冲区的内容。它不会返回任何东西。

于 2013-02-03T11:58:57.987 回答
1

我认为您正在寻找 ob_get_clean() 函数。

于 2013-02-03T11:59:15.920 回答