ob_end_clean也修改变量

时间:2013-02-03 11:53:00

标签: php ob-start ob-get-contents

以下是示例代码:

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

和输出:

testing = ini
string: testing = ini

当我添加

ob_end_clean();

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

我至少期待字符串在屏幕上回显?为什么没见过?

3 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:1)

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

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

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

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

答案 2 :(得分:1)

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