php学习笔记(十七)输出缓冲

本文详细介绍了PHP输出缓冲的概念及其在协调CPU与IO设备间运作的优势。通过使用ob_start()和ob_end_flush()函数,可以有效避免HTTP头已发送错误,并优化网页输出流程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

什么是缓冲区?

缓冲区的作用就是,把输入或者输出的内容先放进内存,而不显示或者读取.缓冲区最本质的作用就是,协调高速CPU和相对缓慢的IO设备(磁盘等)的运作.

在一般的php脚本中,php标签在外的任何HTML都会立即发送到web浏览器,一旦执行了print语句,所有的打印内容也如此。利用输出缓冲,HTML和打印的数据将会被放到缓冲(也就是内存)中,当脚本执行结束后,缓冲将被发送到web浏览器,或者需要的话可以清空,使用缓冲的一个优点在于,无需担心出现“HTTP头已经发送”的错误。

要启动缓冲,只需要在页面开始时使用ob_start()函数,在脚本结束时使用ob_end_flush()函数将累计下来的缓冲发送到web浏览器或者使用ob_end_clean()函数删除缓冲的数据而不进行传输。

<pre name="code" class="php"><?php
 ob_start(); //开启输出缓冲 
?>

<!-- html-->

<?php
ob_end_flush();//完成输出缓冲,将累积的缓冲发送到web浏览器,并关闭缓冲,换句话说,所有的HTML都在此刻发送。
?>


有些函数只能在没有任何东西被发送到浏览器之前调用,像header(),setcookie(),session_start()。如果在web浏览器已经收到了一些文本,HTML或者哪怕一个空格之后再调用这些函数就会出现HTTP头已发送的错误消息。warning:Cannot modify header information - header already sent by ....... 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值