关于PHP中的缓存函数
ob_start() and ob_end_flush()。

PHP输出机制:输出内容->缓存->输出到浏览器。
ob_start(callback function) 打开输出缓存区,所有的输出信息不再发送到浏览器,而是到回调函数处进行处理。
ob_end_flush(); 将缓存区中的所有内容输出,并关闭缓存区。

ob output buffering 的作用:
1.防止使用setCookie, header, session_start()函数使用不当(输出之后才使用)造成的错误。
2.捕获一些不可获取的输出,如phpinfo()的输出,在服务器中可以用ob函数获取服务器信息保存为文件而不进行输出,这样可以友好的或者是隐蔽的获取服务器的信息。
3.对输出的内容进行处理,如加快传输: 捕获内容后,使用gzip对内容进行压缩,然后在接收处使用解压缩,这样传输文件的速度会加快。或者对内容进行其他处理,如中英文处理,编码处理等。
4.生成静态文件 ,即静态模板技术:可以让php的输出写入到一个html文件中,如果没有动态的访问,就直接让用户看到那个静态页面,如果有输入的访问,则调用php文件,重新写html页面,这样对于流量较大的网站的性能提升有很大的作用。

相关函数的说明:
ob_start()打开缓冲区
ob_flush()刷新缓冲区的内容,输出
ob_get_contents() 返回缓冲区的内容
ob_get_length() 返回缓冲区的长度
ob_end_flush() 发送缓冲区内容到浏览器,并关闭缓冲区
ob_end_clean() 删除缓冲区内容(不输出),并关闭缓冲区
ob_implicit_flush() 打开或关闭绝对刷新。 打开绝对刷新后,每个脚本输出直接发送给浏览器,而不需要再调用flush()函数。

PHP学习笔记(八)的更多相关文章

  1. Learning ROS forRobotics Programming Second Edition学习笔记(八)indigo rviz gazebo

    中文译著已经出版,详情请参考:http://blog.csdn.net/ZhangRelay/article/category/6506865 Learning ROS forRobotics Pro ...

  2. python3.4学习笔记(八) Python第三方库安装与使用,包管理工具解惑

    python3.4学习笔记(八) Python第三方库安装与使用,包管理工具解惑 许多人在安装Python第三方库的时候, 经常会为一个问题困扰:到底应该下载什么格式的文件?当我们点开下载页时, 一般 ...

  3. Go语言学习笔记八: 数组

    Go语言学习笔记八: 数组 数组地球人都知道.所以只说说Go语言的特殊(奇葩)写法. 我一直在想一个人参与了两种语言的设计,但是最后两种语言的语法差异这么大.这是自己否定自己么,为什么不与之前统一一下 ...

  4. 【opencv学习笔记八】创建TrackBar轨迹条

    createTrackbar这个函数我们以后会经常用到,它创建一个可以调整数值的轨迹条,并将轨迹条附加到指定的窗口上,使用起来很方便.首先大家要记住,它往往会和一个回调函数配合起来使用.先看下他的函数 ...

  5. go微服务框架kratos学习笔记八 (kratos的依赖注入)

    目录 go微服务框架kratos学习笔记八(kratos的依赖注入) 什么是依赖注入 google wire kratos中的wire Providers injector(注入器) Binding ...

  6. Redis学习笔记八:集群模式

    作者:Grey 原文地址:Redis学习笔记八:集群模式 前面提到的Redis学习笔记七:主从复制和哨兵只能解决Redis的单点压力大和单点故障问题,接下来要讲的Redis Cluster模式,主要是 ...

  7. Java IO学习笔记八:Netty入门

    作者:Grey 原文地址:Java IO学习笔记八:Netty入门 多路复用多线程方式还是有点麻烦,Netty帮我们做了封装,大大简化了编码的复杂度,接下来熟悉一下netty的基本使用. Netty+ ...

  8. ROS学习笔记八:基于Qt搭建ROS开发环境

    1 前言 本文介绍一种Qt下进行ROS开发的完美方案,使用的是ros-industrial的Levi-Armstrong在2015年12月开发的一个Qt插件ros_qtc_plugin,这个插件使得Q ...

  9. vue学习笔记(八)组件校验&通信

    前言 在上一章博客的内容中vue学习笔记(七)组件我们初步的认识了组件,并学会了如何定义局部组件和全局组件,上一篇内容仅仅只是对组件一个简单的入门,并没有深入的了解组件当中的其它机制,本篇博客将会带大 ...

  10. java jvm学习笔记八(实现jar包的代码签名)

     欢迎装载请说明出处:http://blog.csdn.net/yfqnihao/article/details/8267669 课程源码:http://download.csdn.net/detai ...

随机推荐

  1. FCLK PCLK HCLK

    一.对clock的基本认识 1 s3c2410的clock & power management模块包含三个部分:clock control.usb control.power control ...

  2. Java笔记(二十七)……IO流中 File文件对象与Properties类

    File类 用来将文件或目录封装成对象 方便对文件或目录信息进行处理 File对象可以作为参数传递给流进行操作 File类常用方法 创建 booleancreateNewFile():创建新文件,如果 ...

  3. linux统计文件夹某一些文件的大小总和

    du -m smallgame_2006* | awk '{sum += $1}; END{print sum}' -m代表单位是MB, awk命令需要'',且命令需换行

  4. SecureCRT中文乱码解决方法

    在windows下使用SecureCRT访问MAC主机,发现中文总是乱码.而且默认会话选项设置的字符编码就是UTF-8,和MAC主机默认字符编码一样. 后来通过设置,解决了中文乱码问题. 具体使用了两 ...

  5. 扫描线专题 hdu1255

    hdu1255 求覆盖至少两次的面积,和直接求覆盖面积比,就是保证cover>1就可以了. 没有进行lazy操作,因为每一次更新伴随着询问,感觉没有必要.982MS水过. #include &l ...

  6. Java读取文件夹大小的6种方法及代码

    (一)单线程递归方式 package com.taobao.test; import java.io.File; public class TotalFileSizeSequential { publ ...

  7. rcp(插件开发)The type XXX cannot be resolved. It is indirectly referenced from required .class files解决办法

    如果你在使用插件开发时遇到这个问题: The type org.eclipse.core.resources.IFile cannot be resolved. It is indirectly re ...

  8. 传值(VIP)

    页面间传值主要分为:1.属性传值.2.协议传值.3.单例传值.4.Block传值:   界面之间的传值:   1.从前往后:属性传值 2.从后往前:代理传值   3.多界面之间的传值 — 单例传值   ...

  9. SqlServer表中两条全然同样的记录,怎样删除当中1条

    描写叙述:表无主键ID,误插入两遍数据,怎样删除内容同样的记录,而仅仅留下1条. SELECT DISTINCT * INTO #temp FROM grade; DROP TABLE grade; ...

  10. dubbo资料

    http://blog.csdn.net/morning99/article/details/40426781http://blog.csdn.net/ruishenh/article/details ...