php中flush()、ob_flush()、ob_end_flush()的区别介绍

yizhihongxing

当在PHP中输出内容时,页面不会马上显示信息,而是会缓存起来并在执行完PHP程序后一次性输出,这会导致页面等待过长时间,给用户带来不好的体验。为了解决这个问题,我们需要使用三个函数: flush()、ob_flush()、ob_end_flush()。

一、flush()

1.1 flush()函数的作用

flush()函数会将PHP输出的内容立即发送到浏览器端,而不是等到PHP脚本执行完毕后再发送。使用该函数可以保证在PHP执行过程中,数据能够实时从服务器向客户端发送,从而可以实现实时显示数据的功能。

1.2 flush()函数的使用方法

echo "hello world<br />";
flush();  #立即输出
echo "hi there<br />";
flush(); #再次立即输出

1.3 flush()函数的示例

下面是一个使用flush()函数得到输出实时显示功能的例子:

<?php
echo 'Press Start...<br />';
flush();

sleep(2);

echo 'Initializing...<br />';
flush();

sleep(2);

echo 'Loading modules...<br />';
flush();

sleep(2);

echo 'Ready to run.<br />';
flush();
?>

当PHP执行到flush()函数时,输出的内容就会立即推送到客户端并显示,在sleep()函数的时候可以看到输出的效果。

二、ob_flush()和ob_end_flush()

2.1 ob_flush()和ob_end_flush()函数的作用

在使用ob缓冲区来压缩、缓存输出的时候,PHP将所有输出内容都放到了缓冲区,当PHP代码执行结束或者缓存区清空时才发送数据到浏览器显示。ob_flush()和ob_end_flush()函数就是用来清空缓冲区的。

  • ob_flush()函数将当前内容的缓冲区的内容输出到浏览器。
  • ob_end_flush()函数用来清空当前缓冲区,关闭其写操作,释放缓冲区所占用的内存。

2.2 ob_flush()和ob_end_flush()函数使用方法

下面是一个使用ob缓冲区的例子:

<?php
ob_start(); //打开输出缓冲区 
echo "hello world!"; //输出到缓冲区 
ob_flush(); //将缓冲区内的内容发送到浏览器 
echo "<br />";
ob_flush(); //再次将缓冲区的内容发送到浏览器 
ob_end_flush(); //清空缓冲区并关闭其写操作 
?>

2.3 ob_flush()和ob_end_flush()函数使用示例

下面是一个使用ob_flush()和ob_end_flush()函数的例子:

<?php
ob_start();

echo "Ready to run.<br />";

ob_flush();

sleep(2);

echo "Loading modules...<br />";

ob_flush();

sleep(2);

echo "Initializing...<br />";

ob_flush();

sleep(2);

echo "Press Start...<br />";

ob_flush();

ob_end_flush();
?>

当PHP执行到ob_flush()函数时,缓冲区内的内容就会推送到客户端并显示,当PHP执行到ob_end_flush()函数时,缓冲区的内容被清空并关闭缓冲区的写操作。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:php中flush()、ob_flush()、ob_end_flush()的区别介绍 - Python技术站

(0)
上一篇 2023年5月26日
下一篇 2023年5月26日

相关文章

  • PHP进阶学习之垃圾回收机制详解

    PHP进阶学习之垃圾回收机制详解 什么是垃圾回收机制? 垃圾回收机制(简称GC),指的是在程序运行过程中,自动管理和释放所使用的内存资源。PHP自带GC,能够自动跟踪需要的内存,并在不使用时及时释放。 在PHP中,未被引用的变量或对象,就会被认为是垃圾。PHP垃圾回收机制会自动触发,在合适的时机清除这些垃圾对象占用的内存空间,以达到优化性能和内存利用的目的。…

    PHP 2023年5月26日
    00
  • PHP实现数组的笛卡尔积运算示例

    实现数组的笛卡尔积运算是一种常见的数据操作,下面是PHP实现数组的笛卡尔积运算示例的完整攻略: 理解笛卡尔积运算 在开始编写PHP代码之前,需要先理解笛卡尔积运算的概念和特点。简单来说,笛卡尔积运算是一种将多个集合中的元素进行排列组合的方式。例如,对于两个集合A={a,b}和B={c,d},它们的笛卡尔积为{(a, c), (a, d), (b, c), (…

    PHP 2023年5月26日
    00
  • PHP转换文本框内容为HTML格式的方法

    如果你想要将一个文本框中输入的内容,以HTML格式渲染出来,可以通过使用PHP的htmlspecialchars函数。下面是这个过程的完整攻略: 步骤一:获取文本框内容 首先,你需要使用PHP来获取文本框中的输入内容。如果你使用的是POST方式提交表单,那么可以通过$_POST[“textarea_name”]来获取文本框的内容。例如,如果你的文本框的名称是…

    PHP 2023年5月26日
    00
  • 微信小程序 新建登录页并实现tabBar隐藏

    下面我将为你详细讲解“微信小程序新建登录页并实现tabBar隐藏”的完整攻略,过程中将包含以下步骤: 新建登录页,并配置app.json文件 在登录页实现tabBar的隐藏显示 示例说明:使用wx.hideTabBar()和wx.showTabBar()方法实现tabBar隐藏 1. 新建登录页,并配置app.json文件 首先,你需要新建一个登录页(例如l…

    PHP 2023年5月23日
    00
  • 获取知识、保存知识、学习知识和分享知识的管理工具及相关经验技巧

    获取知识: 订阅RSS源:可以通过软件(比如Feedly)将不同网站的文章收集在一个页面上,便于查看和获取信息。 使用Twitter和LinkedIn关注行业内的专业人士,他们往往会分享一些有价值的信息和文章。 保存知识: 使用知识管理工具(例如Notion、Evernote),可以将笔记和思维导图整理成一个系统化的框架,便于整理和查看。 建立一个有机构的文…

    PHP 2023年5月27日
    00
  • 测试php函数的方法

    测试PHP函数的方法可以分为手动测试和自动化测试两种方式。 手动测试 手动测试是指通过手动打开网页或者执行代码来测试PHP函数的正确性和可靠性。以下是手动测试的步骤: 准备输入数据:手动输入或者生成测试数据,确保测试数据的多样性和覆盖度。 准备测试代码:编写调用函数的代码和针对输入数据的测试用例。 运行测试代码:手动执行测试代码并观察输出结果是否符合预期。 …

    PHP 2023年5月27日
    00
  • PHP SPL SplFileInfo FilterIterator 轮询文件删除

    基于PHP spl 遍历文件删除过期的日志文件   一.定义PHP类 , 限制文件扩展 RecursiveFileFilterIterator.class.php  <?php class RecursiveFileFilterIterator extends FilterIterator { protected $ext = array(‘log’,…

    PHP 2023年4月17日
    00
  • PHP 图片文件上传实现代码

    下面我来详细讲解一下“PHP 图片文件上传实现代码”的完整攻略。 步骤一:HTML表单制作 HTML表单用于用户上传图片,代码如下: <form action="upload.php" method="post" enctype="multipart/form-data"> <la…

    PHP 2023年5月23日
    00
合作推广
合作推广
分享本页
返回顶部