php中flush()、ob_flush()、ob_end_flush()的区别介绍
PHP 介绍 区别 end Flush OB
2023-06-13 09:14:45 时间
flush()、ob_flush()、ob_end_flush()三者的区别:
首先,说下buffer,它是一个内存地址空间,为4096(1kb)【在php.ini配置文件中找到output_buffering配置】,php有phpoutput_buffering机制,php代码在执行的时候,并不是立即将内容输出,而是想将echo/print内容输出到buffer,buffer满的时候才会将数据交给系统内核交由tcp传给浏览器显示,当开启phpphpoutput_buffering机制(默认是开启的,可以通过ob_start()函数开启)后,只有当phpbuffer中的数据达到了设置值,才会将buffer中的数据发送给浏览器。
但是浏览器也是有缓存的,一些版本的浏览当数据达到256字节的时候才输出内容,flush()可以将等待输出的内容立即发送到客户端,而ob_flush()只有等待到buffer满的时候才输出。
这里为大家举一个简单的例子,作为验证:
<?php
//防止浏览器的缓存
echostr_repeat("",1024);
for($i=0;$i<5;$i++){
echo$i;
sleep(1);
flush();//会每隔1s输出一个数字,如果使用ob_flush()则会等待5s一起输出
}
?>
相关文章
- PHP如何使用Composer来自动加载项目文件?
- iis6.0上如何搭建php环境
- PHP连接MySQL数据库的步骤与方法(php如何连接mysql)
- PHP服务器在Linux上的应用(php服务器linux)
- 基于MySQL的PHP留言板系统开发(php留言板mysql)
- PHP不使用array_merge函数实现一维数组合并详解编程语言
- PHP应该在哪个Linux操作系统上运行?(php用什么linux)
- PHP与MySQL的完美搭配,打造高效列表展示(php与mysql列表)
- 使用PHP连接Linux,轻松实现物联网设备管理。(php连接linux)
- 使用PHP实现Redis订阅功能(redis订阅php)
- PHP实现连接MS SQL数据库的实战指南(php 打开mssql)
- PHP连接MSSQL数据库快速开启(php mssql 打开)
- 用PHP实现Redis的键值存储(redis键值php)
- 我用php+mysql写的留言本
- php中的时间显示
- PHP+MySQL手工注入语句大全推荐
- 逆序二维数组插入一元素的php代码
- php调用dll的实例操作动画与代码分享
- PHP中数组合并的两种方法及区别介绍
- PHP输入流php://input介绍
- php引用计数器进行垃圾收集机制介绍
- 详解php的魔术方法__get()和__set()使用介绍
- php开启mysqli扩展之后如何连接数据库
- PHP中::、->、self、$this几种操作符的区别介绍
- php中get_headers函数的作用及用法的详细介绍
- php中is_null,empty,isset,unset的区别详细介绍
- 基于PHP输出缓存(output_buffering)的深入理解
- PHP获取和操作配置文件php.ini的几个函数介绍
- 解析PHP跳出循环的方法以及continue、break、exit的区别介绍