PHP之输出控制 ob_start(),ob_get_contents(),ob_end_clean()
1.常用函数
ob_start();#打开输出缓冲区
ob_get_contents();#获取缓冲区内容
ob_get_length();#获取缓冲区内容长度
ob_clean();#清除之前的所有输出内容
ob_end_clean();#清除缓冲区内容并且关闭缓冲区,和ob_clean()差不多吧,不太了解真正的区别,但是有人建议使用这个函数
ob_flush();#冲刷出缓冲区内容,必须在此函数之前使用ob_get_contents()
ob_get_clean();#实质上是ob_get_contents()和ob_end_clean()一起使用
2.通常ob_start(),ob_get_contents(),ob_end_clean()一起使用
<?php echo 'This is A'; ob_end_clean(); ob_start(); echo 'This is B'; $str = ob_get_contents(); $len = ob_get_length(); ob_end_clean(); echo $str.PHP_EOL; echo 'The length of buffer is '.$len.PHP_EOL;
3.使用ob_end_clean()时最好判断有没有缓存内容,否则会下面的错误
1 <?php 2 error_reporting(E_ALL); 3 4 ob_end_clean(); 5 6 ob_end_clean();
Notice: ob_end_clean(): failed to delete buffer. No buffer to delete in /Users/zongshuai/bhu/ceshi/ceshi.php on line 6
解决办法 在ob_end_clean()前面先判断一下,例如 if(ob_get_length()) ob_end_clean(); 或者 if(ob_get_contents()) ob_end_clean();
转载请注明原处