关于ob函数的使用和应用场景

ob缓冲区:

通过浏览器向Apache或者nginx发送请求,然后去调用PHP,在返回给浏览器信息的时候如果ob开启,就会将信息输出到ob里,例如(输出(echo、print_r、var_dump.......等)),然后在经过程序缓冲最终返回给浏览器,显示到页面上。如下图:


在使用ob函数之前我们需要修改一下php.ini的配置文件,切记修改完配置文件要重启Apache或nginx。

php.ini(如何迅速精准的找到环境对应的PHP配置文件,在Demo里输出phpinfo)

output_buffering = 4096	代表PHP缓冲区大小	4096字节   4k

在代码测试时,需要关闭缓冲区,然后在做测试

output_buffering =0或者false 

下面我们来举个栗子,写一个小Demo

<?php
//默认缓冲区是关闭状态    缓冲区可以看作一个容器

ob_start();     //开启缓冲区

echo '123,';     //输出到php缓冲区     缓冲区的内容是123,

$data = ob_get_contents();      //从缓冲区获取内容

echo $data;     //输出到php缓冲区     缓冲区的内容是123,123,

$data = ob_get_contents();      //从缓冲区获取内容      123,123,

echo $data;     //输出到php缓冲区     缓冲区的内容是123,123,123,123,

ob函数应用场景:

1、静态页面的生成

2、需要服务器实时回传给浏览器特定状态使用

来一个小Demo看看效果吧

<?php
header("Content-Encoding: none\r\n");   //告诉服务器不使用gzip压缩

ob_start();     //开启缓冲区

for ($i=1;$i<=10;$i++){
    sleep(1);   //程序暂停....秒
    echo str_repeat("    ", 1024*65);
    echo $i."%";
    //将缓冲区中的内容刷出(ob缓冲区  程序缓冲)
    ob_flush(); //将ob缓冲区中的数据刷出
    flush();    //将程序缓冲刷出到浏览器端
}

这是运行结果:


目前小编也只能更新到这里了............后续持续更新。

猜你喜欢

转载自blog.csdn.net/weixin_39278982/article/details/80973801
今日推荐