加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

如何从PHP获得实时输出?

发布时间:2020-12-13 14:05:33 所属栏目:PHP教程 来源:网络整理
导读:如何从 PHP获得实时输出?没有全部存储在内存/缓冲区中并立即回显浏览器? 如果我创建一个realtime-echo.php ?phpfor($i = 0; $i 10; $i++){echo $i;sleep(1);} 并从互联网浏览器访问它,它在9-10秒后提供以下输出. 0123456789 但我愿意输出的是,当我从浏览器
如何从 PHP获得实时输出?没有全部存储在内存/缓冲区中并立即回显浏览器?

如果我创建一个realtime-echo.php

<?php
for($i = 0; $i < 10; $i++)
{
echo $i;
sleep(1);
}

并从互联网浏览器访问它,它在9-10秒后提供以下输出.

0123456789

但我愿意输出的是,当我从浏览器访问php文件时应该给出

0

然后等待1秒然后在“0”后加“1”
然后等待1秒然后在“1”后加“2”
等等.

idk是什么叫做动画/实时.

怎么做到这一点?

我正在研究我需要恒定输出的项目,所以我可以留意发生的事情和它的发展方向.

谢谢

如果希望显示当前输出,请使用 flush()功能.

一个简单的例子:

<?php
for ($i = 1; $i <= 10; $i++)
{
   echo '<p>' . $i . '</p>';
   flush();
   sleep(1);
}
?>

如果您正在使用输出缓冲,则还需要调用ob_flush()

注意:某些版本的Microsoft Internet Explorer仅在收到256字节输出后才开始显示页面,因此您可能需要在刷新之前发送额外的空格以使这些浏览器显示该页面.

像这样的东西:

<?php
echo str_repeat(" ",256); 
flush();
?>

工作示例(没有ob_start()函数):

<?php
echo str_repeat(" ",256);
for ($i = 1; $i <= 10; $i++)
{
    sleep(1);
    echo '<p>' . $i . '</p>';
    flush();
}
?>

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读