为什么我的代码在重定向之前没有显示/打印“重定向现在......”文本。请记住我不想使用javascript或http_redirect()来重定向。以后会打破流量我的逻辑。
<?php
ob_start();
echo "redirecting now ....";
sleep(3);
header("Location:index.html");
exit();
ob_end_flush();
?>
答案 0 :(得分:3)
试试这个
<?php
echo "redirecting now ....";
print "<META http-equiv='refresh' content='3;URL=index.html'>";
exit;
?>
答案 1 :(得分:2)
改为使用
<?php
ob_start();
echo "redirecting now ....";
header("Refresh: 3; index.php");
exit();
ob_end_flush();
?>
答案 2 :(得分:1)
这不起作用,在该上下文(IMO)中使用ob_start()的原因是,如果您在阻止header()工作的标头之前有不可避免的输出。
它不起作用的原因是因为ob_start()捕获所有输出(在这种情况下echo“重定向现在......”;)并且直到ob_end_flush()才吐出它。在脚本到达ob_end_flush()之前,您已使用header()重定向页面。
答案 3 :(得分:1)
在使用标题()
之前,你无法输出任何内容HTTP-Headers应该在服务器的任何输出之前发送。 如果您之前有输出,服务器将输出“已发送标题”
之类的警告