手机
当前位置:查字典教程网 >编程开发 >php教程 >PHP嵌套输出缓冲代码实例
PHP嵌套输出缓冲代码实例
摘要:这篇文章主要介绍了PHP嵌套输出缓冲代码实例,本文讲解嵌套使用ob系列函数的实例,需要的朋友可以参考下PHP的输出缓存是可以嵌套的。用ob_...

这篇文章主要介绍了PHP嵌套输出缓冲代码实例,本文讲解嵌套使用ob系列函数的实例,需要的朋友可以参考下

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

测试发现在cli和浏览器下输出结果不一样(PHP5.4)。

手册说明如下:

ob_get_level() will always return 0 inside a destructor.

This happens because the garbage collection for output buffers has already done before the destructor is called

想要正确输出也很简单:

代码如下:

ob_end_clean();

echo ob_get_level(); //0

回到正题:

代码如下:

ob_end_clean();

ob_start();

echo 'php1';//此处并不会在页面中输出

$a = ob_get_level();

$b = 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.',ouput:'.$b.'
';

echo 'level:'.$c.',ouput:'.$d.'
';

echo 'level:'.$e.',ouput:'.$f.'
';

结果如下:

代码如下:

level:1,ouput:php1

level:2,ouput:php2

level:3,ouput:php3

当然,当你关闭某个级别的缓冲,如下测试:

代码如下:

ob_end_clean();

ob_start();

echo 'php1';

$a = 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.',ouput:'.$b.'
';

echo 'level:'.$c.',ouput:'.$d.'
';

echo 'level:'.$e.',ouput:'.$f.'
';

结果如下:

代码如下:

level:1,ouput:php1

level:2,ouput:php2

level:2,ouput:php3

【PHP嵌套输出缓冲代码实例】相关文章:

GD输出汉字的函数的分析

PHP输出一个等腰三角形的方法

写一段简单的PHP建立文件夹代码

PHP Hash算法:Times33算法代码实例

我的论坛源代码(十)

论坛头像随机变换代码

php curl请求信息和返回信息设置代码实例

PHP实现的购物车类实例

PHP图像处理类库MagickWand用法实例分析

3.从实例开始

精品推荐
分类导航