首页 > 代码库 > 页面静态化-----ob缓存
页面静态化-----ob缓存
PHP程序 有三个缓存区: ob缓存 、程序缓存、浏览器缓存
ob = output buffer 输出缓冲
<?php
//ob_start就是启用ob缓存
ob_start();
header("content-type:text/html;charset=utf-8");
//在程序中,我启用ob缓存
echo "hello1, world";
//清空ob缓存,但是不关闭ob缓存
//ob_clean();
//清空ob缓存,并关闭ob缓存
//ob_end_clean();
//把ob缓存的内容,刷新到程序缓存,并关闭ob
//ob_end_flush();
//把ob缓存的内容,刷新到程序缓存,不关闭ob
ob_flush();
echo "beijing";
echo ob_get_contents();
//ob_get_contents()可以获取ob缓存的内容
$str=ob_get_contents();
//把$str放入到一个文件
file_put_contents("d://my.log",$str);
?>
关于浏览器缓存:
<?php
echo str_repeat(‘ ‘,1024);
for($i=0;$i<5;$i++){
echo $i;
sleep(1);//休眠1秒,这里说明一下在休眠期 浏览器和 apahce服务器的连接不会断
flush();//把程序缓存刷到浏览器缓存
}
实例代码:
<?php ob_start(); //打开输出缓冲区$cacheTime = 864000; //设置缓存页面过期时间$cacheDir = ‘cacheDir‘; //设置缓存页面文件目录if (!is_dir($cacheDir)) mkdir($cacheDir); //判断目录是否存在,否则创建目录$cacheFile = $cacheDir.‘/‘.(int)date("Ymd").‘.html‘; //缓存文件路径,文件以日期命名if (!is_file($cacheFile) || time() - filemtime($cacheFile) > $cacheTime) {<!--页面输出部分内容。也是ob_get_contents()函数取得的全部内容-->$content = ob_get_contents(); //取得php页面输出的全部内容 $fp = fopen($cacheFile, "w"); //输出内容写入文件fwrite($fp, $content);fclose($fp);} else {echo $content = file_get_contents($cacheFile); //如果缓存文件已经存在,且未过期则读取}?>
页面静态化-----ob缓存