sleep()在PHP中的工作方式

ome*_*ga1 1 php sleep

请原谅一个看起来很简单的问题,可能对PHP / sleep()的工作方式缺乏了解,但是我对以下代码有所了解:

<?php
$time_now = time();
echo "Time Now : " . $time_now;
sleep(10);
$time_then = time();
echo "<br>Time Then : " . $time_then;
?>
Run Code Online (Sandbox Code Playgroud)

我期望此代码输出当前时间,然后等待10秒,然后在10秒后输出时间。

而是等待设置的10秒,并同时输出两个时间。时间是正确的,因为“ Time Now”是我执行代码的时间,而“ Time Then”是10秒后的时间,但是它没有响应我的预期(输出Time Now,等待10秒,然后继续执行代码并显示“时间到了”)。

鉴于我的理解显然是错误的,是否有可能实现这一目标?还是我最好触发另一个文件来加载我想做的事情,如下所示:

文件1

<?php
$time_now = time();
echo "Time Now : " . $time_now;
header('Location: page2.php');
?>
Run Code Online (Sandbox Code Playgroud)

文件2

<?php
sleep(10);
$time_then = time();
echo "<br>Time Then : " . $time_then;
?>
Run Code Online (Sandbox Code Playgroud)

谢谢。

vas*_*123 5

您需要使用PHP 的flush函数来获得例外结果。

脚本完成后,PHP将为您提供输出。如果要实时显示结果,则需要刷新输出缓冲区。

$time_now = time();
echo "Time Now : " . $time_now;
flush();
sleep(10);
$time_then = time();
echo "<br>Time Then : " . $time_then;
Run Code Online (Sandbox Code Playgroud)