zoukankan      html  css  js  c++  java
  • php之ob_start()缓冲区

    ob_get_contents()函数及与其相关几个函数的用法

    ob_start()

    ob_get_contents(); 获取缓冲区内容,如果是纯 html内容或标签,则都会放于浏览器的缓冲区中。

                                如果将ob_get_contents()获取到的缓冲区的内容赋给一个文件,则缓冲区里的内容会覆盖文件里之前的内容

    ob_end_clean():删除内部缓冲区的内容,并且关闭内部缓冲区[删除运行ob_end_clean()此函数 之前的所有echo print_r输出到缓冲区的内容;删除ob_end_clean()此函数 之前的html内容或标签;定义的变量依然存在]

    ob_end_flush() 发送内部缓冲区的内容到浏览器,并且关闭输出缓冲区

    ob_get_length() 返回内部缓冲区的长度。

    Flush():刷新缓冲区的内容,输出。

     

    ob_end_clean();

     

    使用ob_start()把echo或print等输出的内容输至缓冲区,而不是到浏览器。

    然后用ob_get_contents得到缓冲区的数据。

    ob_start()在服务器打开一个缓冲区来保存所有的输出。所以在任何时候使用任意个echo 等输出,输出都将被加入缓冲区中,直到程序运行结束或者使用ob_flush()来结束。然后在服务器中缓冲区的内容才会发送到浏览器,由浏览器来解析显示。

     

    函数ob_end_clean() 会清除缓冲区的内容.(并将缓冲区关闭,但不会输出内容。)

    此时在使用ob_end_clean()之前使用函数ob_get_contents()来获得缓冲区的内容。

    这样的话, 能将在执行ob_end_clean()前把内容保存到一个变量中,然后在ob_end_clean()后面对这个变量做操作。

    1 <?php
    2 ob_start();
    3 echo 'aaaa<br />'; //保存至缓存区
    4 $c = 'ccc';
    5 echo $c; //保存至缓存区 
    6 $d = ob_get_contents();
    7  //程序结束输出以上echo在缓存中的内容
    8 ?>
    1 <?php
    2 ob_start();
    3 $a = 'aaaa<br />';
    4 $b = ob_get_contents();
    5 echo $b;
    6  //程序结束没有任何输出,因为虽然开启了缓冲,但是缓冲区里没有被输出内容
    7 ?>

     

  • 相关阅读:
    CSS浮动(float、clear)通俗讲解
    JAVA 类的加载
    数据库操作 delete和truncate的区别
    正则表达式 匹配相同数字
    Oracle EBS OM 取消订单
    Oracle EBS OM 取消订单行
    Oracle EBS OM 已存在的OM订单增加物料
    Oracle EBS OM 创建订单
    Oracle EBS INV 创建物料搬运单头
    Oracle EBS INV 创建物料搬运单
  • 原文地址:https://www.cnblogs.com/xccjmpc/p/3586208.html
Copyright © 2011-2022 走看看