文档章节

缓存原理--静态化

PHer
 PHer
发布于 2014/06/17 11:16
字数 378
阅读 158
收藏 2

缓存的分类:

            ①程序缓存

            ②ob缓存

            ③浏览器缓存

如:

<?php
//ob_start();如果PHPini文件中开启了缓冲开关控制
echo str_repeat("&nbsp;",4096),'<br/>';
for ($i=0; $i < 10; $i++) { 
    //开启缓冲开关控制,也可以通过Phpini文件中设置
    echo $i.'<br/>';
    ob_flush();//直接输出缓冲内容,这个内容会发送到浏览器,浏览器也自带有缓冲控制功能
    flush();//设置浏览器不缓存
    sleep(1);

}

如果ini文件中如果设置了开启了缓冲开关,在php文件中ob_start()会关闭缓冲开关

捕捉PHP缓冲内容:

        ob_get_contents(): 获得缓冲区的内容.

$str = <<<HTML
    <h3>这是我在staticpage中获得的缓冲区数据</h3>

HTML;
echo $str;
$imessage=ob_get_contents();
file_put_contents("3.txt",$imessage);


        ob_clean();清空PHP源头的缓冲区内容.
        ob_get_clean();获得PHP缓冲区内容.并且清空缓冲区  

<?php
$str = <<<HTML
    <h3>这是我在staticpage中获得的缓冲区数据</h3>

HTML;
echo $str;
$imessage=ob_get_clean();
file_put_contents("3.txt",$imessage);

  总结:

        ob_start();开启缓冲。

        ob_flush();将PHP缓冲区内容发到Apache,再到浏览器。

        flush; 将浏览器里边的缓冲数据输出。

        ob_clean(); 将缓冲区的内容清除掉。

        ob_get_clean();将缓冲区的内容获得,之后清除掉缓冲区数据信息。

        ob_get_contents();获得PHP缓冲区内容。

        ob_end_flush():刷新缓冲区内容到程序缓存,并且清楚缓冲区内容,关闭ob

        flush:该函数将当前为止程序的所有输出发送到用户的浏览器。

       





© 著作权归作者所有

共有 人打赏支持
PHer
粉丝 4
博文 121
码字总数 38443
作品 0
成都
程序员
秋色园QBlog技术原理解析:性能优化篇:缓存总有失效时,持续的缓存方案(十四)

文章回顾: 1: 秋色园QBlog技术原理解析:开篇:整体认识(一) --介绍整体文件夹和文件的作用 2: 秋色园QBlog技术原理解析:认识整站处理流程(二) --介绍秋色园业务处理流程 3: 秋色园QBl...

晨曦之光
2012/03/09
0
0
php网站静态化

一、静态化 实现静态化的两种方法: 1.利用ob缓存技术进行静态化 2.利用模板替换技术实现静态化 二.伪静态 优点:1.速度快 2.利于seo 3.安全性高 缺点:占磁盘空间,如果过大,对磁盘响应速度...

yang名扬
2014/07/15
0
0
小蚂蚁学习页面静态化(1)——静态化的原理

关于页面php文件执行阶段 语法分析——》编译——》运行 如何优化页面的响应时间 动态页面静态化 优化数据库 使用负载均衡 使用缓存 页面静态化能够解决的问题 1.减少服务器脚本的计算时间 ...

嗜学如命的小蚂蚁
2015/10/09
242
2
php页面静态化

实现静态化的原理 原理:把输出缓冲区的内容,写入到指定文件中中。 用到Php内置的文件操作函数(fileputcontents()) 使用Php缓冲区机制(obstart, obgetcontents, obclean, obgetclean) 触发...

金于虎
2016/12/19
2
0
秋色园QBlog技术原理解析:性能优化篇:用户和文章计数器方案(十七)

上节概要: 上节 秋色园QBlog技术原理解析:性能优化篇:access的并发极限及分库分散并发方案(十六) 中, 介绍了 Access的并发上限,及从某种程度上 秋色园QBlog 针对并发上限进行了多个数据...

晨曦之光
2012/03/09
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

react native 开发碰到的问题

react-navigation v2 问题 问题: static navigationOptions = ({navigation, navigationOptions}) => ({ headerTitle: ( <Text style={{color:"#fff"}}>我的</Text> ), headerRight: ( <View......

罗培海
30分钟前
0
0
Mac Docker安装流程

久仰Docker大名已久,于是今天趁着有空,尝试了一下Docker 先是从docker的官网上下载下来mac版本的docker安装包,安装很简易,就直接拖图标就好了。 https://www.docker.com/products/docker...

writeademo
38分钟前
0
0
TensorFlow rnn mnist 分类

使用rnn 对mnist进行分类 参考 http://www.360doc.com/content/17/0321/10/10408243_638692495.shtml 网络定义 其中最后一层不需要进行sofmax,lstmcell返回的数据是两个,一个是阶段性的,一...

阿豪boy
39分钟前
0
0
使用ELK构建微服务的日志平台

1 概述 在微服务架构中,会部署众多的应用,其中有基础应用,比如:网关,服务发现等。同时还有大量的业务应用。所以,如何有效的收集它们的日志,并且方便查询,同时提供友好的可视化展示,...

Java大蜗牛
48分钟前
0
0
Spring源码阅读——4

BeanDefinitionHolder的创建 Spring框架中BeanDefinition的继承结构如下图: BeanDefinition是配置文件<bean>元素标签在容器中内部表示形式。<bean>元素标签拥有class、scope、lazy-init等配...

叶枫啦啦
56分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部