zoukankan      html  css  js  c++  java
  • PHP的OB缓存(输出缓存)

      使用PHP自带的缓存机制

    原则:如果ob缓存打开,则echo的数据首先放在ob缓存。如果是header信息,直接放在程序缓存。当页面执行到最后,会把ob缓存的数据放到程序缓存,然后依次返回给浏览器。

    OB(输出缓存)缓存的机制:

    看段代码:

    echo 'hello100';

    header('Content-Type:text/html;charset=utf-8');

    echo 'hello200';

    为什么不打开ob缓存要报错?

    没有ob缓存时,程序遇见一个echo就将它放到程序缓存中(之前默认有header),根据http协议格式,先有header头再有body数据,所以就不能在body后再加header。

            为什么打开ob缓存后不报错?

    PHP的OB缓存(输出缓存)

    看间echo就把echo的信息放到ob缓存中,看见header信息就放到程序缓存中,最后程序结束时,将ob缓存中的数据刷新到程序缓存中

     

    在php5.2有个配置项:ouput_buffering,默认是关闭的,则这个代码会报错。

    解决方案:a 将header写在最前面 b 打开ob缓存

    ☆如何打开ob缓存的方法

    ① 在配置文件中php.ini文件中output_buffering=4096

    ② 在程序中加一句话 ob_start(); //开启ob缓存

    几个重要ob函数:

    $str = ob_get_contents();  //获取ob缓存数据

    ob_clean(); //清空ob缓存的数据

    ob_end_cleam(); //清空ob缓存的数据并关闭缓存

    ob_flush(); //把ob缓存的数据刷新(剪切)到程序缓存

    ob_end_flush(); //把ob缓存的数据刷新(剪切)到程序缓存并关闭ob缓存

    flush(); //把程序缓存强制刷新到浏览器缓存

     

     

     

     

    http://blog.sina.com.cn/s/blog_9bbafb790101cmpb.html

  • 相关阅读:
    记录两种获取配置文件的方法
    jsp-自定义标签
    转载 -jsp静态包含和动态包含的区别
    Linux基础知识笔记
    关于HTTP协议
    关于orcale创建type的一些小经验(遇到的坑)
    servlet处理乱码之post和get
    发布restful类型的接口
    ros2 dashing 安装失败指南
    exit回调
  • 原文地址:https://www.cnblogs.com/jxkshu/p/5267949.html
Copyright © 2011-2022 走看看