如何在PHP中延迟2秒以包含?
我希望这个PHP脚本在包含sp.PHP(服务器面板)之前等待2秒。如何在PHP中延迟2秒以包含?,php,sleep,Php,Sleep,我希望这个PHP脚本在包含sp.PHP(服务器面板)之前等待2秒。 睡眠(2)对我不起作用(它根本不起任何作用。) 我的代码: <?php $cookie_name = "sc"; ?> <?php if(!isset($_COOKIE[$cookie_name])) { include 'noserver.php'; } else { echo "Server found"; sleep(2); incl
睡眠(2)代码>对我不起作用(它根本不起任何作用。)
我的代码:
<?php
$cookie_name = "sc";
?>
<?php
if(!isset($_COOKIE[$cookie_name])) {
include 'noserver.php';
} else {
echo "Server found";
sleep(2);
include 'sp.php';
}
?>
有什么想法吗?它用于承载web的服务器。您可以使用Javascript和setTimeout
和window.location.href
重定向到该文件
例如:
<?php
if (!isset($_COOKIE[$cookie_name])) {
include 'noserver.php';
} else {
echo 'Server found';
echo '<script>setTimeout(function(){window.location.href =
"http://yourwebsite.com/sp.php"}, 2 * 1000);</script>';
}
?>
您可以将Javascript与setTimeout
和window.location.href
一起使用,以重定向到该文件
例如:
<?php
if (!isset($_COOKIE[$cookie_name])) {
include 'noserver.php';
} else {
echo 'Server found';
echo '<script>setTimeout(function(){window.location.href =
"http://yourwebsite.com/sp.php"}, 2 * 1000);</script>';
}
?>
您可能认为它什么也没做,因为在包含完成之前您看不到输出。在写入“找到服务器”后,尝试放置flush
命令并刷新任何缓冲区:
打印“找到服务器\n”;
//在最坏的情况下,您可能会被迫发送“”
//有足够的“垃圾”来强制任何中间缓冲区刷新。
if(ob_get_level()){
ob_flush();
}
冲洗();
...
然而,正如所建议的,这可能是一个XY问题。您希望发生其他事情,而服务器端延迟2秒可能不是实现这一点的最佳方式
例如,如果您希望立即显示一条快速的“Server found”消息,然后加载一个较慢的页面(,即使它是同一个页面),您可以使用会话标志或使用jQuery和DOM加载来实现这一点
在第一种情况下,您加载同一页面两次,第一次显示消息,设置标志并使用位置或元重载(echo“
)重新加载。第二次,设置标志后,取消设置标志并运行include()
。问题在没有服务器的情况下解决sleep()
开销。您可能认为它什么也没做,因为在包含完成之前,您看不到输出。请尝试在写入“找到服务器”后放入flush
命令并刷新任何缓冲区:
打印“找到服务器\n”;
//在最坏的情况下,您可能会被迫发送“”
//有足够的“垃圾”来强制任何中间缓冲区刷新。
if(ob_get_level()){
ob_flush();
}
冲洗();
...
但是,正如所建议的,这可能是XY问题。您希望发生其他事情,而服务器端延迟2秒可能不是实现这一点的最佳方式
例如,如果您希望立即显示一条快速的“Server found”消息,然后加载一个较慢的页面(,即使它是同一个页面),您可以使用会话标志或使用jQuery和DOM加载来实现这一点
在第一种情况下,您加载同一页面两次,第一次显示消息,设置标志并使用Location或Meta reload(echo”
)重新加载。第二次,设置了标志后,取消设置标志并运行include()
。问题已解决,无需服务器sleep()
开销。包括之前的睡眠感觉各种各样的错误。。。你能描述一下你想要达到的目标吗?也许我们可以建议一种正确的方法。嗨,我尝试当用户访问cns.php页面(我尝试添加睡眠()的页面)时,它首先检测cookie“sc”(服务器创建)是否已设置,如果未设置,则从文件“noserver.php”加载内容,但如果是,它将键入“Server found”,等待2秒(这很重要)并加载服务器面板(sp.php)。我希望这次我能把它描述得很好。作为将来的参考:当你说“等2秒钟(这很重要)”之类的话时,它是。。。重要的是,您需要解释为什么这对您的应用程序至关重要。你在等答复吗?还有什么可以用的吗?正是这样的信息才能真正帮助社区为您提供正确的解决方案。如果你在问题中说了一些对你来说很重要的事情,那么对那些试图回答这个问题的人来说也很重要。。。你能描述一下你想要达到的目标吗?也许我们可以建议一种正确的方法。嗨,我尝试当用户访问cns.php页面(我尝试添加睡眠()的页面)时,它首先检测cookie“sc”(服务器创建)是否已设置,如果未设置,则从文件“noserver.php”加载内容,但如果是,它将键入“Server found”,等待2秒(这很重要)并加载服务器面板(sp.php)。我希望这次我能把它描述得很好。作为将来的参考:当你说“等2秒钟(这很重要)”之类的话时,它是。。。重要的是,您需要解释为什么这对您的应用程序至关重要。你在等答复吗?还有什么可以用的吗?正是这样的信息才能真正帮助社区为您提供正确的解决方案。如果你在你的问题中说了一些对你来说很重要的事情,那么对那些试图回答这个问题的人来说也很重要。哦,非常感谢!这是可行的,但它只是重定向到页面。我想保持url的原样,但还是要谢谢你!哦,非常感谢!这是可行的,但它只是重定向到页面。我想保持url的原样,但还是要谢谢你!