当在PHP中输出内容时,页面不会马上显示信息,而是会缓存起来并在执行完PHP程序后一次性输出,这会导致页面等待过长时间,给用户带来不好的体验。为了解决这个问题,我们需要使用三个函数: flush()、ob_flush()、ob_end_flush()。
当在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()的区别介绍
基础教程推荐
- mac 下安装php7全过程介绍 2022-10-11
- PHP进阶学习之类的自动加载机制原理分析 2023-01-20
- php多进程并发编程防止出现僵尸进程的方法分析 2023-04-02
- PHP保姆级API制作教程,不会剁手 2022-09-02
- php遍历目录下文件并按修改时间排序操作示例 2023-01-26
- PHP大小写问题:函数名和类名不区分,变量名区分 2024-03-30
- ThinkPHP框架实现的邮箱激活功能示例 2022-11-01
- php教程之魔术方法的使用示例(php魔术函数) 2023-12-18
- php xhprof使用实例详解 2023-01-08
- yii2中关于加密解密的那些事儿 2022-10-31