sleep()如何在PHP中运行

时间:2016-03-21 08:47:35

标签: php sleep

请原谅看似非常简单的问题,可能缺乏对PHP / sleep()如何工作的理解,但我在以下代码的指导之后:

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

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

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

鉴于我的理解显然不正确,是否有可能实现这一目标?或者我会更好地触发另一个文件来加载我想要做的事情,如下所示:

档案1

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

文件2

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

谢谢。

2 个答案:

答案 0 :(得分:4)

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

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

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

答案 1 :(得分:1)

如果你在服务器上运行它,它确实会在脚本完成后给出输出。

但如果用作命令行脚本,它将输出然后休眠十秒钟然后继续

在@lolka_bolka中提到你是否想要值然后你可以使用flush