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();
在上面有代码的端在屏幕上没有输出。
我至少期待字符串在屏幕上回显?为什么没有看到?
ob_start();开始输出缓冲到内部缓冲区不(屏幕),然后当你添加ob_get_contents();它复制内部缓冲区的输出仍然没有打印,并且当ob_end_clean();解释,它会清除所有内部缓冲区内存,没有任何输出到屏幕上。
从ob_start()开始;到ob_end_clean();什么都不会打印,我在使用这个方法的时候包含了用于防止在发送标题之前打印一些空白的文件。
如果我甚至不包含ob_start(),我可以重现完全相同的东西。这是如何运作的? –
区别在于: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()函数。
这种情况下也可以不包含ob_start()。 –