php中的buffer缓冲区用法分析


Posted in PHP onMay 31, 2019

本文实例讲述了php中的buffer缓冲区用法。分享给大家供大家参考,具体如下:

buffer其实就是缓冲区,一个内存地址空间,主要用于存储数据

<?php
echo 1;

我们都运行程序浏览器访问,会显示1。

但是其实这中间会经历一个buffer,我们可以这样理解:这个1数据会先到php缓存区,当这个缓冲区满了之后,再传给客户端(浏览器)。

这个过程大致流程如下:

内容 -> php buffer -> tcp -> 终端(浏览器)

php.ini

output_buffering = on
#打开output缓冲,默认打开的。

output_buffering打开与关闭的区别:

1.打开了php输出缓存: echo,print -> php output_buffring -> server buffering -> browser buffering -> browser display

2.未打开php输出缓存: echo,print -> server buffering -> browser buffering -> browser display

我们在代码里获取缓存区内容:

<?php
echo 1;
echo "<hr/>";
// 获取php缓存区的内容
$buffer = ob_get_contents();
echo $buffer;

如果在php配置文件php.ini中output_buffering = on是开启的,那么上面代码在浏览器上会显示2个1和2条横线,查看网页源代码如下:

1<hr/>1<hr/>

如果php.ini中是关闭的,那么只会显示一次。

当然我们也可以在代码中,临时开启php缓冲区

<?php
ob_start(); // 开始php缓存,写在最前面
echo 1;
echo "<hr/>";
// 获取php缓存区的内容
$buffer = ob_get_contents();
echo $buffer;

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
jq的get传参数在utf-8中乱码问题的解决php版
Jul 23 PHP
批量获取memcache值并按key的顺序返回的实现代码
Jun 14 PHP
匹配csdn用户数据库与官方用户的重合度并将重叠部分的用户筛选出来
Dec 25 PHP
PHP中VC6、VC9、TS、NTS版本的区别与用法详解
Oct 26 PHP
yii去掉必填项中星号的方法
Dec 28 PHP
php5.4传引用时报错问题分析
Jan 22 PHP
php微信浏览器分享设置以及回调详解
Aug 01 PHP
CI(CodeIgniter)框架视图中加载视图的方法
Mar 24 PHP
PHP保留两位小数的几种方法
Jul 24 PHP
Thinkphp5框架实现获取数据库数据到视图的方法
Aug 14 PHP
laravel框架 api自定义全局异常处理方法
Oct 11 PHP
php正则表达式使用方法整理集合
Jan 31 PHP
PHP实现基于状态的责任链审批模式详解
May 31 #PHP
Laravel框架实现调用百度翻译API功能示例
May 30 #PHP
Laravel框架学习笔记之批量更新数据功能
May 30 #PHP
PHP实现的微信公众号扫码模拟登录功能示例
May 30 #PHP
PHP使用PDO创建MySQL数据库、表及插入多条数据操作示例
May 30 #PHP
TP5(thinkPHP5框架)基于bootstrap实现的单图上传插件用法示例
May 29 #PHP
TP5(thinkPHP框架)实现后台清除缓存功能示例
May 29 #PHP
You might like
PHP has encountered an Access Violation 错误的解决方法
2010/01/17 PHP
深入PHP与浏览器缓存的分析
2013/06/03 PHP
最新制作ThinkPHP3.2.3完全开发手册
2015/11/23 PHP
PHP+MySQL存储数据常见中文乱码问题小结
2016/06/13 PHP
AppBaseJs 类库 网上常用的javascript函数及其他js类库写的
2010/03/04 Javascript
40个新鲜出炉的jQuery 插件和免费教程[上]
2012/07/24 Javascript
用js实现小球的自由移动代码
2013/04/22 Javascript
js事件监听器用法实例详解
2015/06/01 Javascript
举例说明如何为JavaScript的方法参数设置默认值
2015/11/17 Javascript
javascript实现网页中涉及的简易运动(改变宽高、透明度、位置)
2015/11/29 Javascript
node.js报错:Cannot find module 'ejs'的解决办法
2016/12/14 Javascript
详解如何去除vue项目中的#——History模式
2017/10/13 Javascript
jQuery实现的粘性滚动导航栏效果实例【附源码下载】
2017/10/19 jQuery
JS实现移动端整屏滑动的实例代码
2017/11/10 Javascript
vue-cli+webpack项目 修改项目名称的方法
2018/02/28 Javascript
小程序云开发实现数据库异步操作同步化
2019/05/18 Javascript
vue实现购物车的小练习
2020/12/21 Vue.js
在Linux上安装Python的Flask框架和创建第一个app实例的教程
2015/03/30 Python
Python中random模块用法实例分析
2015/05/19 Python
解决Django的request.POST获取不到内容的问题
2018/05/28 Python
python3 flask实现文件上传功能
2020/03/20 Python
Python 20行简单实现有道在线翻译的详解
2019/05/15 Python
Django forms表单 select下拉框的传值实例
2019/07/19 Python
详解移动端h5页面根据屏幕适配的四种方案
2020/04/15 HTML / CSS
美国孕妇装品牌:Destination Maternity
2018/02/04 全球购物
外贸实习生自荐信范文
2013/11/24 职场文书
课外活动总结范文
2014/07/09 职场文书
党支部三会一课计划
2014/09/24 职场文书
原料仓管员岗位职责
2015/04/01 职场文书
2015年外联部工作总结
2015/04/03 职场文书
工作会议通知
2015/04/15 职场文书
法律进社区活动总结
2015/05/07 职场文书
2020优秀员工演讲稿(三篇)
2019/10/17 职场文书
python 爬取豆瓣网页的示例
2021/04/13 Python
Pyhton模块和包相关知识总结
2021/05/12 Python
springboot 自定义配置 解决Boolean属性不生效
2022/03/18 Java/Android