php中的buffer缓冲区用法分析

yipeiwu_com6年前PHP代码库

本文实例讲述了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缓存技术总结》、《php面向对象程序设计入门教程》、《PHP基本语法入门教程》、《PHP数组(Array)操作技巧大全》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总

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

相关文章

php使用sql数据库 获取字段问题介绍

在PB开发过程中,由于数据库中使用了 ntext字段,出现以下提示错误,郁闷了很长时间找不到解决方案,后查阅大量资料,终于明白:PB报错: 不能用 DB-Library(如 ISQL)或...

php中html_entity_decode实现HTML实体转义

最近遇到一个问题,数据中包含中文引号,结果被转义存储到数据库,取数据的时候用了htmlspecialchars_decode把实体转义回去,结果发现并没有生效,看了一下htmlspeci...

全面解读PHP的Yii框架中的日志功能

Yii页面级日志开启 在 Main.php中 log段添加、 下面显示页面日志 array( 'class'=>'CWebLogRoute', 'levels'=>'tra...

php使用include 和require引入文件的区别

最近有小伙伴,提问了有关于require_once的有关问题,对于程序中遇到的问题,无聊难度大小,只要bug存在就还值得我们去探索,去解决。针对这个问题,我把include和requir...

php生成缩略图质量较差解决方法代码示例

php生成缩略图质量较差解决方法代码示例

近期弄个论坛,在首页要有个排名,显示评论最多的前十位用户的列表,列表有个略图是用户最新上传的作品,如果使用原来的图,图片过大,首页加载过慢,因此要使用略图 以上来使用imagecopyr...