为什么我的代码在重定向之前没有显示/打印“重定向现在....”文本。请记住,我不想使用javascript或http_redirect()重定向后来会打破我的逻辑流程。php标题重定向没有在重定向之前回显文本
<?php
ob_start();
echo "redirecting now ....";
sleep(3);
header("Location:index.html");
exit();
ob_end_flush();
?>
为什么我的代码在重定向之前没有显示/打印“重定向现在....”文本。请记住,我不想使用javascript或http_redirect()重定向后来会打破我的逻辑流程。php标题重定向没有在重定向之前回显文本
<?php
ob_start();
echo "redirecting now ....";
sleep(3);
header("Location:index.html");
exit();
ob_end_flush();
?>
使用这个代替
<?php
ob_start();
echo "redirecting now ....";
header("Refresh: 3; index.php");
exit();
ob_end_flush();
?>
试试这个
<?php
echo "redirecting now ....";
print "<META http-equiv='refresh' content='3;URL=index.html'>";
exit;
?>
PHP的“header()”会发送一个HTTP标头 - 这些标签在主响应后不会被浏览器读取或处理。 http://www.techrepublic.com/blog/software-engineer/structure-of-an-http-response/ – watermanio
所以简而言之,使用php头部函数,你不能打印任何东西之前重定向 –
我认为这是最好的重定向页面的方式,你可以打印任何东西之前重定向也可以设置秒等待... –
这是行不通的,在这方面(IMO)使用ob_start()的原因是,如果你有问题,导致该头的头之前不可避免的输出()从工作。
它不起作用的原因是因为ob_start()捕获所有的输出(在这种情况下,回声“重定向现在....”;),并不吐出,直到ob_end_flush()。在脚本到达ob_end_flush()之前,您使用header()重定向页面。
您使用header()
前斜面输出任何HTTP报头应该从服务器的任何输出之前发送。 如果您之前有输出,服务器将会输出如'Headers already been sent'的警告。
它现在正在工作我认为有一个错误在我的代码 –
它是当我测试它:) – mavili