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

来源:互联网 发布:三国霸业源码 编辑:程序博客网 时间:2024/05/23 02:05

———-关于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><?phpob_end_flush (); ?> 
  • ob_get_contents — 返回输出缓冲区的内容

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

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

<?phpob_start ();echo  "Hello " ; $out1  =  ob_get_contents ();echo  "World" ; $out2  =  ob_get_contents (); ob_end_clean (); var_dump ( $out1 ,  $out2 ); ?> 
  • ob_get_length — 返回输出缓冲区内容的长度
    描述:此函数将返回输出缓中冲区内容的长度。

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

<?phpob_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 。 错误的原因首先是,在调用时没有一个起作用的缓冲区,或者是因为某些原因缓冲区不能被删除(可能对特殊缓冲区而言)。

<?phpob_start ();echo  'Text that won\'t get displayed.' ; ob_end_clean (); ?> 
0 0
原创粉丝点击