PHP嵌套输出缓冲代码实例
试验发现,输出结果不相同的CLI和浏览器下(php5.4)。
手册描述如下:
ob_get_level()会返回0个析构函数。
这是因为输出缓冲区的垃圾回收已经完成。
正确的输出也很简单:
复制代码代码如下所示:
ob_end_clean();
回声ob_get_level(); / / 0
回到要点:
复制代码代码如下所示:
ob_end_clean();
ob_start();
echo'php1 '; / /这里是不是在页面输出
美元= ob_get_level();
$ =(ob_get_contents / /);获得缓存结果变量
ob_clean();
ob_start();
echo'php2 '; / /这里是不是在页面输出
C = ob_get_level(美元);
美元D =(ob_get_contents / /);获得缓存结果变量
ob_clean();
ob_start();
echo'php3 '; / /这里是不是在页面输出
e = ob_get_level();
$ F =(ob_get_contents / /);获得缓存结果变量
ob_clean();
echo'level:美元。A,输出:美元;
echo'level:美元。C,输出:D美元;
echo'level:'。$ E,输出:$ F'。;
结果如下:
复制代码代码如下所示:
等级:1,输出:php1
等级:2,输出:php2
等级:3,输出:3
当然,当您关闭一定程度的缓冲时,以下测试:
复制代码代码如下所示:
ob_end_clean();
ob_start();
echo'php1;
美元= ob_get_level();
B = ob_get_contents(美元);
ob_clean();
ob_start();
echo'php2;
C = ob_get_level(美元);
美元D = ob_get_contents();
(ob_end_clean); / /清空缓存和缓存关闭
ob_start();
echo'php3;
e = ob_get_level();
$ F = ob_get_contents();
ob_clean();
echo'level:美元。A,输出:美元;
echo'level:美元。C,输出:D美元;
echo'level:'。$ E,输出:$ F'。;
结果如下:
复制代码代码如下所示:
等级:1,输出:php1
等级:2,输出:php2
等级:2,输出:3