2.缓存机制

<?

php echo 'hello100'; header('content-type:text/html;charset=utf-8'); echo 'hello200';

这里写图片描写叙述
这里写图片描写叙述
这里写图片描写叙述
解决方式:

1.把heander()信息放在头部
2.打开 ob 缓冲

这里写图片描写叙述

怎样打开 ob 缓存:

1.在 php.ini 中打开
2. ob_start()

ob1.php

<?php

//开启ob缓存
ob_start();
echo 'hello100';
header('content-type:text/html;charset=utf-8');
echo 'hello200';
echo 'hello300';

//获取ob缓存的数据
$str = ob_get_contents();
//把$str保存到文件里
file_put_contents('wjh.log',$str);
echo 'hello400';
echo 'hello500';
echo 'hello600';

wjh.log

hello100hello200hello300

几个原则:
这里写图片描写叙述


情况缓存:

<?

php //开启ob缓存 ob_start(); echo 'hello100'; header('content-type:text/html;charset=utf-8'); echo 'hello200'; echo 'hello300'; //清空 ob 缓存 ob_clean(); //获取ob缓存的数据 $str = ob_get_contents(); //把$str保存到文件里 file_put_contents('wjh.log',$str); echo 'hello400'; echo 'hello500'; echo 'hello600';

这里写图片描写叙述

<?

php //开启ob缓存 ob_start(); echo 'hello100'; header('content-type:text/html;charset=utf-8'); echo 'hello200'; echo 'hello300'; //清空 ob 缓存 //ob_clean(); //该函数是清空ob中的数据,并关闭ob缓存 ob_end_clean(); echo 'hello400'; //获取ob缓存的数据 $str = ob_get_contents(); //把$str保存到文件里 file_put_contents('wjh.log',$str); echo 'hello500'; echo 'hello600';

这里写图片描写叙述

<?php

//开启ob缓存
ob_start();
echo 'hello100';
header('content-type:text/html;charset=utf-8');
echo 'hello200';
echo 'hello300';

//清空 ob 缓存
//ob_clean();
//该函数是清空ob中的数据,并关闭ob缓存
//ob_end_clean();
ob_clean();
echo 'hello400';
//获取ob缓存的数据
$str = ob_get_contents();
//把$str保存到文件里
file_put_contents('wjh.log',$str);

echo 'hello500';
echo 'hello600';

这里写图片描写叙述


<?

php //开启ob缓存 ob_start(); echo 'hello100'; header('content-type:text/html;charset=utf-8'); echo 'hello200'; //把 ob 缓存的数据。刷新到程序缓存 ,并关闭 ob_end_flush(); echo 'hello300'; $str = ob_get_contents(); file_put_contents('wjh.log',$str); //所以文件为空 echo 'hello500'; echo 'hello600';

这里写图片描写叙述

<?php

//开启ob缓存
ob_start();
echo 'hello100';
header('content-type:text/html;charset=utf-8');
echo 'hello200';

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

//把 ob 缓存的数据,刷新到程序缓存 ,不关闭
ob_flush();
echo 'hello300';

$str = ob_get_contents();
file_put_contents('wjh.log',$str); //所以文件为空

echo 'hello500';
echo 'hello600';

这里写图片描写叙述


ob2.php

<?php

//把程序缓存的数据,强制刷新到浏览器缓冲
//flush();
//不同的浏览器须要字符到一定量才显示,用以下这句话
//echo str_repeat('',1024);
//ob缓存要关闭,才干够看到效果
for ($i = 0 ; $i < 5 ; $i++) {
    echo $i;
    //把程序缓存的数据,强制刷新到浏览器缓冲
    flush();
    //休眠1秒钟,在sleep这个过程中,http连接没有断
    sleep(1);
}

这里写图片描写叙述


这里写图片描写叙述
这里写图片描写叙述
这里写图片描写叙述

原文地址:https://www.cnblogs.com/yutingliuyl/p/7146850.html