PHP - ob_flush - 清理旧文本并在循环中打印新文本

时间:2018-03-07 09:02:52

标签: php flush

我正在尝试创建一个脚本,该脚本将在for循环中打印文本。这是我的剧本:

<?php

for($i = 0; $i < 10; $i ++) {
    sleep(3);
    echo $i;
    flush();
    ob_flush();
}

?>

但是这个脚本对每个循环文本求和。我想清除每个循环的缓冲区,然后打印新文本。有可能吗?

感谢。

1 个答案:

答案 0 :(得分:1)

您可以使用JavaScript更新主体,例如:

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>Update</title>
</head>
<body>
<?php
for($i = 0; $i < 10; $i ++) {
    sleep(3); // usleep(300000);
    echo '<script>document.body.innerHTML="'.$i.'";</script>';
    flush();
    ob_flush();
}
?></body>
</html>