PHP输出控制函数介绍

    输出控制函数可以用来控制脚本的输出。这些函数在某些特殊情况下很有用,特别是脚本中已经输出了信息之后再想向浏览器发送标头的情况。输出控制函数不会作用于 header()setcookie() 函数发送的标头,而只会影响类似于 echo() 函数输出的信息和嵌入在 PHP 代码之间的信息。

 

    相关函数如下:

  1. flush()
  2. ob_clean()
  3. ob_end_clean()
  4. ob_end_flush()
  5. ob_flush()
  6. ob_get_clean()
  7. ob_get_contents()
  8. ob_get_flush()
  9. ob_get_length()
  10. ob_get_level()
  11. ob_get_status()
  12. ob_gzhandler()
  13. ob_implicit_flush()
  14. ob_list_handlers()
  15. ob_start()
  16. output_add_rewrite_var ()
  17. output_reset_rewrite_vars ()

void flush ( void ) 刷新输出缓冲区。该函数将当前为止程序的所有输出发送到用户的浏览器。

有时候会遇到flush() 无效的情况,可能是以下四种原因造成的:

  • 个别web服务器程序,特别是Win32下的web服务器程序,在发送结果到浏览器之前,仍然会缓存脚本的输出,直到程序结束为止。
  • 有些Apache的模块,比如mod_gzip,可能自己进行输出缓存,这将导致flush() 函数产生的结果不会立即被发送到客户端浏览器。
  • 甚至浏览器也会在显示之前,缓存接收到的内容。例如 Netscape 浏览器会在接受到换行或 html 标记的开头之前缓存内容,并且在接受到 </table> 标记之前,不会显示出整个表格。
  • 一些版本的 Microsoft Internet Explorer 只有当接受到的256个字节以后才开始显示该页面,所以必须发送一些额外的空格来让这些浏览器显示页面内容。

void ob_clean ( void ) 清空输出缓冲区。调用该函数会丢掉缓冲区的数据,但不会破换缓冲区的模式,而ob_end_clean() 清空缓冲区后会关闭缓冲区。

 

bool ob_end_clean ( void ) 清空缓冲区同时关闭缓冲区。若要进一步处理缓冲区中的内容,则需要在调用ob_end_clean() 前调用ob_get_contents() 以保存缓冲区中的数据。

 

bool ob_end_flush ( void ) 刷新缓冲区同时关闭缓冲区。若要进一步处理缓冲区中的内容,则需要在调用ob_end_flush() 前调用ob_get_contents() 以保存缓冲区中的数据。

 

void ob_flush ( void ) 刷新缓冲区。若要进一步处理缓冲区中的内容,则需要在调用ob_flush() 前调用ob_get_contents() 以保存缓冲区中的数据。调用flush() 这不会丢弃缓冲区中的内容。

 

string ob_get_clean ( void ) 获取缓冲区中的内容同时关闭缓冲区。若缓冲区未激活,则返回False。

 

string ob_get_contents ( void ) 获取缓冲区的内容但不清空缓冲区。若缓冲区未激活,则返回False。

 

string ob_get_flush ( void ) 刷新缓冲区,返回缓冲区的内容,同时关闭缓冲区。和ob_end_flush() 类似,区别是它以字符串的形式返回缓冲区的内容。

 

int ob_get_length ( void ) 返回缓冲区的长度。若缓冲区未激活,则返回False。

 

int ob_get_level ( void ) 返回缓冲处理函数的嵌套级别。若缓冲区未激活,则返回0。

 

array ob_get_status ( [bool full_status=FALSE ] ) ob_get_status() returns status information on either the top level output buffer or all active output buffer levels if full_status is set to TRUE .

 

string ob_gzhandler ( string buffer, int mode ) ob_start()的回调函数,用以压缩缓冲区的内容。注意,该函数需要zlib的扩展。

 

void ob_implicit_flush ( [int flag] ) ob_implicit_flush() will turn implicit flushing on or off (if no flag is given, it defaults to on). Implicit flushing will result in a flush operation after every output call, so that explicit calls to flush() will no longer be needed.

 

array ob_list_handlers ( void ) List all output handlers in use

 

bool ob_start ( [callback output_callback [, int chunk_size [, bool erase]]] ) This function will turn output buffering on.

 

bool output_add_rewrite_var ( string name, string value ) This function adds another name/value pair to the URL rewrite mechanism.

 

bool output_reset_rewrite_vars ( void ) This function resets the URL rewriter and removes all rewrite variables previously set by the output_add_rewrite_var() function or the session mechanism

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值