-
系统缓冲区定义:一个内存地址空间,用来存储速度不同步的设备或者优先级不同的设备之间存储数据。例如使用vim编辑器时,系统并不会立即把一个字符写入 磁盘而是缓冲区,当写满时或者调用flush()函数时才保存到磁盘上。
-
php输出缓存区:默认时当echo或者print时,先把输出文本放在php输出缓存区时,等到缓存区满了或者服务端脚本结束时才返回给用户
-
php缓冲区,默认缓冲大小是4096,4K,当缓冲区满了才会返回给浏览器
public function index() { // for($i=0;$i<10;$i++) { echo "$i"."<br />" sleep(1); } }
-
这个是达到缓冲的最大值,每一秒输出一次
public function index() { ob_end_clean(); $str=str_repeat('a', 512); for($i=0;$i<10;$i++) { echo $str.'<br />'; flush(); // 把系统缓冲强制返回给浏览器 sleep(1); } }
- 使用ob_start()函数会把缓冲大小范围变得很大,还是要等待程序结束才一起输出
public function index() { ob_start(); $str=str_repeat('a', 512); for($i=0;$i<10;$i++) { echo $str.'<br />'; flush(); // 把系统缓冲强制返回给浏览器 sleep(1); } }
-
将输出缓冲区内容写到文件中去
public function index() { for($i=0;$i<10;$i++) { echo $i.'<br />'; } $f=fopen('D:/test/ob.txt','w') or die('文件不存在'); fwrite($f, ob_get_contents()); }
- 一个文件时间的概念
- ctime(change time):状态修改时间(文件权限等) filectime:返回时间戳或者false
- atime(access time):上一次访问时间 fileatime
- mtime(modify time):文件内容修改时间 filemtime
- 将html文件内容写到文件中
<html> <head> <title></title> </head> <body> my name is {$name} </body> </html> <?php $f=fopen('D:/test/ob.html','w') or die('文件不存在'); fwrite($f, ob_get_contents()); fclose($f); ?>
- 简单缓存一个页面的例子
public function index() { if(cache('index')){ return cache('index'); } cache('index',view('',['name'=>'power']),10); return view('',['name'=>'power']); }
- 一些常用函数
- ob_start() //打开一个输出缓冲区,所有的输出不再直接发送给浏览器二十缓冲区
- ob_get_contents() // 获取缓存区中的内容
- ob_end_clean() // 删除缓冲区中的内容,关闭缓冲区
- ob_end_flush() // 发送内部缓冲区内容到浏览器并且关闭输出缓冲区
- flush() // 通知操作系统底层,尽快把数据发给客户端浏览器
- ob_clean() // 删除缓冲区的内容
- ob_flush() //把输出缓存区中的内容返回到浏览器,删除缓冲区的内容
- 一个文件时间的概念
php输出缓冲区和缓存技术实现
猜你喜欢
转载自blog.csdn.net/qq_40941787/article/details/83508194
今日推荐
周排行