【问题标题】:Sleep() Function not doing what I think it shouldSleep() 函数没有做我认为应该做的事情
【发布时间】:2013-07-15 23:03:55
【问题描述】:

首先,如果我错了,请纠正我,但我假设当您运行 Sleep() 函数时,它会暂停运行脚本位于脚本中的位置,而不是在开始时。如果这是真的,有人可以告诉我为什么下面的脚本等待 5 秒然后同时显示两个回声。不要在页面加载时回显第一个语句,然后等待 5 秒,然后触发第二个回显......

      echo "Your account username has been updated, you will now be redirected to the home page!";
      sleep(5);
      echo "REDIRECT!";

【问题讨论】:

  • 你需要输出缓冲才能做到这一点
  • php 是服务器端,也许你会更好一些 js
  • 不确定这是否适用于 PHP,但 5 秒不是 5000 吗?毫秒还是没有?
  • @HenryHarris php sleep 使用秒数:int sleep (int $seconds) usleep() if you want microsecounds
  • @Dagon 啊...谢谢。 :) 我不是一个 php 人。

标签: php


【解决方案1】:

在您的代码中,PHP 执行将暂停 5 秒,但它不会逐部分呈现自己。 即它不会显示第一个语句,然后是第二个语句。 PHP 将其所有值保存在输出缓冲区中,并在执行完成时显示它们。

发生的情况是,它将第一个 echo 的值保存在输出缓冲区中,然后等待 5 秒,然后将另一个 echo 输出保存在输出缓冲区中,立即显示所有内容

你想要做的事情在 JS 中要容易得多。

echo "Your account username has been updated, you will now be redirected to the home page!";
echo "<script> document.setTimeout(function() { document.location('redirect.html'); }, 5000); </script>";

【讨论】:

    猜你喜欢
    • 2023-03-26
    • 2011-09-28
    • 2020-07-05
    • 1970-01-01
    • 1970-01-01
    • 2016-03-19
    • 1970-01-01
    • 1970-01-01
    • 2021-11-25
    相关资源
    最近更新 更多