关于PHP开启缓冲函数系列函数

———-关于php开启缓冲函数系列函数

  • ob_start() — 开启输出缓冲区
    描述:此函数将打开输出缓冲。当输出缓冲激活后,脚本将不会输出内容(除http标头外),相反需要输出的内容被存储在内部缓冲区中。

    注意:输出缓冲区是可堆叠的,这即意谓着,当有一个 ob_start() 是活跃的时, 你可以调用另一个 ob_start() 。 只要确保又正确调用了 ob_end_flush() 恰当的次数即可。 如果有多重输出回调函数是活跃的,输出内容会一直按嵌套的顺序依次通过它们而被过滤。

<?php

 function  callback ( $buffer )
{
   // replace all the apples with oranges
   return ( str_replace ( "apples" ,  "oranges" ,  $buffer ));
}

 ob_start ( "callback" );

 ?>
<html>
<body>
<p>It's like comparing apples to oranges.</p>
</body>
</html>
<?php

ob_end_flush ();

 ?> 
  • ob_get_contents — 返回输出缓冲区的内容

    注意:只是得到输出缓冲区的内容,但不清除它

    返回值:此函数返回输出缓冲区的内容,或者如果输出缓冲区无效将返回 FALSE 。

<?php

ob_start ();

echo  "Hello " ;

 $out1  =  ob_get_contents ();

echo  "World" ;

 $out2  =  ob_get_contents ();

 ob_end_clean ();

 var_dump ( $out1 ,  $out2 );
 ?> 
  • ob_get_length — 返回输出缓冲区内容的长度
    描述:此函数将返回输出缓中冲区内容的长度。

    返回值:返回输出缓冲区内容的长度;或者返回 FALSE ——如果没有起作用的缓冲区。

<?php

ob_start ();

echo  "Hello " ;

 $len1  =  ob_get_length ();

echo  "World" ;

 $len2  =  ob_get_length ();

 ob_end_clean ();

echo  $len1  .  ", ."  .  $len2 ;
 ?> 
  • ob_end_flush — 冲刷出(送出)输出缓冲区内容并关闭缓冲

    描述:这个函数将送出最顶层缓冲区的内容(如果里边有内容的话),并关闭缓冲区。如果想进一步处理缓冲区中的内容,必须在 ob_end_flush() 之前调用 ob_get_contents() ,因为在调用 ob_end_flush() 后缓冲区内容被丢弃。

    返回值:成功时返回 TRUE , 或者在失败时返回 FALSE 。 错误的原因首先是,在调用时没有一个起作用的缓冲区,或者是因为某些原因缓冲区不能被删除(可能对特殊缓冲区而言)。

<?php
   while (@ ob_end_flush ());
 ?>
  • ob_get_flush — 刷出(送出)缓冲区内容,以字符串形式返回内容,并关闭输出缓冲区。

    返回值:返回输出缓冲区的内容;或者是,如果没有起作用的输出缓冲区,返回 FALSE 。

<?php
 //using output_buffering=On
 print_r ( ob_list_handlers ());

 //save buffer in a file
 $buffer  =  ob_get_flush ();
 file_put_contents ( 'buffer.txt' ,  $buffer );

 print_r ( ob_list_handlers ());
 ?> 
  • ob_end_clean — 清空(擦除)缓冲区并关闭输出缓冲

    描述:此函数丢弃最顶层输出缓冲区的内容并关闭这个缓冲区。如果想要进一步处理缓冲区的内容,必须在 ob_end_clean() 之前调用 ob_get_contents() ,因为当调用 ob_end_clean() 时缓冲区内容将被丢弃。

    返回值:成功时返回 TRUE , 或者在失败时返回 FALSE 。 错误的原因首先是,在调用时没有一个起作用的缓冲区,或者是因为某些原因缓冲区不能被删除(可能对特殊缓冲区而言)。

<?php
ob_start ();
echo  'Text that won\'t get displayed.' ;
 ob_end_clean ();
 ?> 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值