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 ?>

     

  • 相关阅读:
    控制语句
    (小程序)接收用户键盘输入
    运算符
    java doc形成注释文档
    linux中rz、sz命令,zip、unzip命令,sqlite3基本操作
    hash应用-加随机盐保存密码
    非对称/对称加密算法,hash算法
    自签名的应用--数字货币
    HTTPS原理
    Django中app的model相互引用问题
  • 原文地址:https://www.cnblogs.com/xccjmpc/p/3586208.html
Copyright © 2011-2022 走看看