Rumah  >  Artikel  >  pembangunan bahagian belakang  >  php输出缓冲控制

php输出缓冲控制

伊谢尔伦
伊谢尔伦asal
2016-11-22 09:51:271055semak imbas

简介

当PHP脚本有输出时,输出控制函数可以用这些来控制输出。这在多种不同情况中非常有用,尤其是用来在脚本开始输出 数据后,发送http头信息到浏览器。输出控制函数不影响由 header() 或 setcookie()发送的文件头信息,仅影响像 echo这样的函数和PHP代码块间的数据。

注意:

由于早先的版本的缺陷,当从PHP4.1.x(4.2.x,4.3.x)升级时,必须保证php.ini中的implicit_flush 是 OFF, 否则任何用 ob_start()的输出将在输出中隐藏掉。

基本用法

<?php
    ob_start();
    echo "Hello\n";
    setcookie("cookiename", "cookiedata");
    ob_end_flush();
?>

在上面的例子中, echo函数的输出将一直被保存在输出缓冲区中直到调用 ob_end_flush() 。同时,对 setcookie()的调用也成功存储了一个cookie,而不会引起错误。(正常情况下,在数据被发送到浏览器后,就不能再发送http头信息了。)

输出控制函数

flush — 刷新输出缓冲

ob_clean — 清空(擦掉)输出缓冲区

ob_end_clean — 清空(擦除)缓冲区并关闭输出缓冲

ob_end_flush — 冲刷出(送出)输出缓冲区内容并关闭缓冲

ob_flush — 冲刷出(送出)输出缓冲区中的内容

ob_get_clean — 得到当前缓冲区的内容并删除当前输出缓。

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

ob_get_flush — 刷出(送出)缓冲区内容,以字符串形式返回内容,并关闭输出缓冲区。

ob_get_length — 返回输出缓冲区内容的长度

ob_get_level — 返回输出缓冲机制的嵌套级别

ob_get_status — 得到所有输出缓冲区的状态

ob_gzhandler — 在ob_start中使用的用来压缩输出缓冲区中内容的回调函数。

ob_implicit_flush — 打开/关闭绝对刷送

ob_list_handlers — 列出所有使用中的输出处理程序。

ob_start — 打开输出控制缓冲

output_add_rewrite_var — 添加URL重写器的值(Add URL rewriter values)

output_reset_rewrite_vars — 重设URL重写器的值(Reset URL rewriter values)


Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel sebelumnya:php选项和配置信息Artikel seterusnya:JSON在PHP中的应用