PHP实时输出内容到浏览器
2023-12-15 18:43:35
当我们处理一个需要耗时很长程序时候,需要知道程序当前的处理状态,该怎么办呢?
比如:循环采集数据、导入数据库等等
1、Nginx不缓存PHP返回的内容
header('X-Accel-Buffering: no'); //关闭nginx的缓存
2、PHP不缓存(PHP不缓存有两种方式)
一、是修改配置文件php.in,修改output_buffering为0或Off
output_buffering = 0
;或
output_buffering = Off
二、代码中关闭
ob_end_flush(); //冲刷出(送出)输出缓冲区内容并关闭缓冲
//或者
ob_end_clean(); //统计缓冲区的大小,并清空缓冲区
三、获取buffer中的内容 进行输出
ob_flush(); //把数据从php的缓冲区中释放出来
示例用法如下:
//方式1
ob_end_flush();//关闭缓存 数据不再存储到buffer区域中,变为等待输出状态
for ($i = 1; $i <= 10; $i++) {
echo 'loading ' . $i . '0%<br>';
flush(); //将等待输出的数据立刻输出到客户端
sleep(1);
}
//方式2
ob_end_flush(); //关闭缓存 数据不再存储到buffer区域中,变为等待输出状态
ob_implicit_flush(1); //打开绝对(隐式) 刷送。每次输出调用后有一次刷送操作,以便不再需要对 flush() 的显式调用。
for ($i = 1; $i <= 10; $i++) {
echo 'loading ' . $i . '0%<br>';
sleep(1);
}
//方式3
for ($i = 1; $i <= 10; $i++) {
echo 'loading ' . $i . '0%<br>';
ob_flush(); //获取缓存区的内容,转为等待输出状态
flush(); //将等待输出的数据立刻输出到客户端
sleep(1);
}
文章来源:https://blog.csdn.net/liuxl57805678/article/details/135022413
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!