ob_end_clean修改变量以及

问题描述:

下面是一个示例代码:ob_end_clean修改变量以及

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

和输出:

testing = ini 
string: testing = ini 

当添加

ob_end_clean(); 

在上面有代码的端在屏幕上没有输出。

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

+0

这种情况下也可以不包含ob_start()。 –

ob_start();开始输出缓冲到内部缓冲区不(屏幕),然后当你添加ob_get_contents();它复制内部缓冲区的输出仍然没有打印,并且当ob_end_clean();解释,它会清除所有内部缓冲区内存,没有任何输出到屏幕上。

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

+0

如果我甚至不包含ob_start(),我可以重现完全相同的东西。这是如何运作的? –

+0

区别在于:ob_start()在脚本结束前开始输出缓冲,而当脚本执行结束时,正常缓冲输出开始。 – 2013-02-03 12:04:40

请参阅ob_get_clean(),ob_end_flush()ob_end_clean()之间的差异。

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

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

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

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