PHP缓冲区函数

输出缓冲激活后,脚本将不会输出内容(除http标头外),相反需要输出的内容被存储在内部缓冲区中,这是PHP缓冲区函数的作用。

比如某个函数使用的echo输出一段内容,而不是return返回,但你不希望该函数将内容输出,这时候可以使用PHP缓冲区函数来解决此问题。

比如定义了一个函数hello()如下:

<?php
function hello(){
    echo 'hello,world!';
}

hello();

当直接调用该函数后会输出内容:hello,world!,但是如果你不想让该函数内容直接输出,可使用下面的代码替代:

<?php
function hello(){
    echo 'hello,world!';
}

//激活缓冲区函数
ob_start();
//调用hell函数
hello();
//清空缓冲区内容
ob_end_clean();

上面的代码先将内容放到缓冲区,然后没有对内容进行任何操作,最后将缓冲区内容清空了,因此不会有任何输出显示。

函数解释

  • ob_start():打开输出缓冲
  • ob_get_contents():将缓冲区的内容复制到一个字符串变量中
  • ob_end_flush():输出缓冲区内容
  • ob_end_clean():清空缓冲区

更多说明可参考PHP官方文档:Output Control 函数

标签: PHP函数

发表评论: