0

考虑以下代码:

$i = 1;
while ($i <= 100)
{
    echo $i."<br>";
    sleep(3);
    $i++;
}

这里 PHP 一次打印所有数字。为什么在打印 1 然后休眠 3 秒然后打印下一个数字后它不会停止?有没有办法在特定时间(在这种情况下为 3 秒)后打印数字?

4

2 回答 2

2

您需要在每次迭代后刷新 PHP 的输出缓冲区以获得您想要的结果。

尝试以下操作;flush();在您的睡眠电话上方添加。

如果这不起作用,请在ob_flush();相同的flush(); 示例上方添加:

$i=1;
while($i > 0)
{
    echo $i;
    ob_flush();
    flush();
    sleep($delay);
    $i--;
}
于 2013-10-01T09:32:38.540 回答
1

此代码应该适合您:

$i = 1;
while ($i <= 3)
{
    flush();
    echo $i."<br>";
    sleep(3);
    ob_flush();
    $i++;
}
于 2013-10-01T09:31:54.950 回答