【发布时间】:2017-12-26 17:09:50
【问题描述】:
我想这个问题很清楚。我想要的是打印计数并为下一个循环或特定睡眠后更新相同的回声。但是当我运行下面的代码时,多个回显就完成了。我只想回显一次并更新/替换最后一个回显。我不想使用 html/javascript ,我希望在 PHP 中实现这一点。下面是代码。
<?php
if (ob_get_level() == 0) ob_start();
for ($i = 0; $i<50000; $i++){
echo $i;
ob_flush();
flush();
sleep(1);
}
ob_end_flush();
?>
【问题讨论】:
-
这不是它的工作方式。 PHP 中的所有内容都是在服务器端运行的,完成后,完整的代码会发送到 apache,然后由 apache 将其发送到您的浏览器。我猜你想要的是:显示 1,然后擦除 1 并显示 2,然后擦除 2 并显示 3……等等。这在 JS 中真的很容易,但 php 真的不是为此而生的。
-
其实只是为了完整,是的,您可以在 php 完成之前开始在客户端浏览器中显示,但是,您仍然无法删除已发送到浏览器的内容,而不使用 JS。
标签: php codeigniter flush