PHP嵌套输出缓冲代码实例

PHP的输出缓存可以嵌套,嵌套级别可以输出ob_get_level()。

试验发现,输出结果不相同的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