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>