zoukankan      html  css  js  c++  java
  • 理解 PHP output buffer

    在需要使用输出缓存区的时候,一般会在代码中加上ob_start()这个函数。

    这是因为php.ini中output_buffering设置为off时,则缓存区处于关闭状态,需要用ob_start()打开缓存区。如果output_buffering为On时,写ob_start(),不会有什么影响,只是为了保险起见,防止output_buffering未开启。

    实例代码:

    <?php
    ob_start();//开启缓冲区
     echo "这是第一次输出内容!
    ";
     $a[1] = ob_get_contents() ; //获取当前缓冲区内容
     ob_flush();//缓冲器清除
     echo "这是第二次输出内容!
    ";
     $a[2] = ob_get_contents() ; //获取当前缓冲区内容
     echo "这是第三次输出内容!
    ";
     $a[3] = ob_get_contents() ; //获取当前缓冲区内容
    
      echo "<pre>";
      print_r($a);
    //输出结果
    这是第一次输出内容! 这是第二次输出内容! 这是第三次输出内容!
    Array
    (
        [1] => 这是第一次输出内容!
    
        [2] => 这是第二次输出内容!
    
        [3] => 这是第二次输出内容!这是第三次输出内容!
    )
    一、 相关函数简介:
    1、Flush:刷新缓冲区的内容,输出。
    函数格式:flush()
    说明:这个函数经常使用,效率很高。

    2、ob_start :打开输出缓冲区
    函数格式:void ob_start(void)
    说明:当缓冲区激活时,所有来自PHP程序的非文件头信息均不会发送,而是保存在内部缓冲区。为了输出缓冲区的内容,可以使用ob_end_flush()或flush()输出缓冲区的内容。

    3 、ob_get_contents :返回内部缓冲区的内容。
    使用方法:string ob_get_contents(void)
    说明:这个函数会返回当前缓冲区中的内容,如果输出缓冲区没有激活,则返回 FALSE 。

    4、ob_get_length:返回内部缓冲区的长度。
    使用方法:int ob_get_length(void)
    说明:这个函数会返回当前缓冲区中的长度;和ob_get_contents一样,如果输出缓冲区没有激活。则返回 FALSE。

    5、ob_end_flush :发送内部缓冲区的内容到浏览器,并且关闭输出缓冲区。
    使用方法:void ob_end_flush(void)
    说明:这个函数发送输出缓冲区的内容(如果有的话)。

    6、ob_end_clean:删除内部缓冲区的内容,并且关闭内部缓冲区
    使用方法:void ob_end_clean(void)
    说明:这个函数不会输出内部缓冲区的内容而是把它删除!

    7、ob_implicit_flush:打开或关闭绝对刷新
    使用方法:void ob_implicit_flush ([int flag])
    说明:使用过Perl的人都知道$|=x的意义,这个字符串可以打开/关闭缓冲区,而ob_implicit_flush函数也和那个一样,默认为关闭缓冲区,打开绝对输出后,每个脚本输出都直接发送到浏览器,不再需要调用 flush()

  • 相关阅读:
    react ts axios 配置跨域
    npm run eject“Remove untracked files, stash or commit any changes, and try again.”错误
    java 进程的参数和list的线程安全
    帆软报表 大屏列表跑马灯效果JS
    帆软报表 快速复用数据集,避免重复劳动
    分析云 OA中部门分级思路和实现方法
    分析云 分段器 只显示一个块的数据
    分析云 更改服务默认的端口号
    分析云U8项目配置方法新版本(2)
    Oracle 创建时间维度表并更新是否工作日字段
  • 原文地址:https://www.cnblogs.com/mysic/p/5142443.html
Copyright © 2011-2022 走看看