ob_end_clean也会修改变量


ob_end_clean modifies variables as well

下面是一个示例代码:

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

和输出:

testing = ini
string: testing = ini

当我添加

ob_end_clean();

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

我至少期待字符串在屏幕上得到回响?为什么看不到呢?

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

从 ob_start(); 到 ob_end_clean(); 开始不会打印任何内容,我在包含文件时使用此方法以防止在发送标头之前打印一些空格。

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

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

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

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

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