我有这个:
echo "<font color=\"#000000\">text</font>";
usleep(2000000);
header("location:/otherpage.php");
?>`请注意,这将包含在iframe中...
问题是它没有回显echo语句,而是休眠了两秒钟,然后重定向(除了echo部分,其他都是正确的)……
有人知道为什么会发生这种事吗?它不是iframe,因为当您直接转到文件(独立于iframe)时,也会发生同样的情况。会不会是我们的睡眠??
谢谢
发布于 2011-10-21 04:12:36
您在上面所做的操作将不起作用。首先,您需要执行刷新,以确保数据已发送。其次,更重要的是,您不能在刷新后更改头部,这将导致头部或文本不被发送。
如果您想要做的只是在延迟后更改数据,您是否考虑过执行以下操作:
header('Refresh: 2; url=http://my.site.com/otherpage.php);
echo "<font color=\"#000000\">text</font>";这将在浏览器中发送信息,指示浏览器在2秒后更改为新的URL。
发布于 2011-10-21 04:10:55
这是行不通的,因为你不能在输出文本后改变标题。当您想精确复制此行为时,唯一的选择是使用meta refresh或javascript。
但是输出问题可以通过刷新缓冲区来解决,但是就像我之前提到的那样,重定向是不可能的。
另一个非常重要的事情是:不要使用USLEEP来做这样的事情。为什么?因为当你的脚本被重载时,每一个需要太多时间的请求都是非常糟糕的,并且你会用完php线程(取决于你的php webserver实现)。因此,对于这样的超时,您应该使用客户端代码(如果可能)。
发布于 2011-10-21 04:12:59
它在服务器上休眠,然后发送输出。同样,你不能在回显后发送报头。
您应该使用javascript或meta重定向,这将允许您在重定向之前等待几秒钟,这两种重定向的时间和url都可以由您的php脚本生成。
https://stackoverflow.com/questions/7841614
复制相似问题