PHP与sleep()和重定向有关的问题

PHP与sleep()和重定向有关的问题,php,Php,我有以下愚蠢的代码: <? echo "<html><br><br><br><div id='loading'><p><img src='loader.gif'> Please wait 6 seconds...</p></div></html>"; sleep(6); header('Location: http://google.com/'); ?> 您需

我有以下愚蠢的代码:

<?

echo "<html><br><br><br><div id='loading'><p><img src='loader.gif'> Please wait 6 seconds...</p></div></html>";
sleep(6);
header('Location: http://google.com/');

?>

您需要执行以下操作(这行不通):


这不起作用。因为第一个回波将开始输出。之后,标头调用将失败。不过,您可以使用PHP端的刷新头来完成

<?php
header('Refresh: 5;URL=http://www.google.com/'); // refresh header
echo "<html><head>";
// meta refresh
echo "<meta http-equiv=\"refresh\" content=\"5;URL=http://www.google.com/\" />"; 
echo "</head><body><br><br><br><div id='loading'><p><img src='loader.gif'> Please wait 6 seconds...</p></div></body></html>";
?>
<script type="text/javascript">
// javascript refresh
window.setTimeout(function(){
    location.href="http://www.google.com";
},5000);
</script>

我想您正在查找
标题('Refresh:6;url=http://google.com/)
;重定向

不需要缓冲和脚本睡眠。

来自:

记住,必须在调用任何实际输出之前调用header() 通过普通HTML标记、文件中的空行或PHP发送。 使用include或require读取代码是非常常见的错误, 函数或其他文件访问函数,并具有空格或空 在调用header()之前输出的行。同样的问题 使用单个PHP/HTML文件时存在

因此,您不能在echo之后使用header()函数


我建议您改用javascript或meta标记。

您没有做错任何事情,睡眠功能应该像那样工作,但不会工作!如果您这样做,您的标题位置将无法工作,因为标题已经发送。在传输内容后您无法发送标题我知道,我在回答中写到了这一点,可能您在我的编辑大约1分钟前没有重新加载。谢谢大家!你帮了我很大的忙,我的代码现在运行得非常完美。
<?php

echo "<html><meta http-equiv=\"refresh\" content=\"6;URL='http://YOURURL.com/'\"><br><br><br><div id='loading'><p><img src='loader.gif'> Please wait 6 seconds...</p></div></html>";

?>
<?php
header('Refresh: 6;URL=http://www.YOURURL.com/');
echo "<html><br><br><br><div id='loading'><p><img src='loader.gif'> Please wait 6 seconds...</p></div></html>"
?>
<?php
header('Refresh: 5;URL=http://www.google.com/'); // refresh header
echo "<html><head>";
// meta refresh
echo "<meta http-equiv=\"refresh\" content=\"5;URL=http://www.google.com/\" />"; 
echo "</head><body><br><br><br><div id='loading'><p><img src='loader.gif'> Please wait 6 seconds...</p></div></body></html>";
?>
<script type="text/javascript">
// javascript refresh
window.setTimeout(function(){
    location.href="http://www.google.com";
},5000);
</script>