一定时间后页面重定向PHP


95

在一段时间后,有一些用于重定向的PHP函数。我在某处看到它,但记不起来了。就像登录后的gmail重定向一样。请有人提醒我吗?


@zerkms:看起来有几种方法可以做到。
韦斯利·默奇

2
@Wesley Murch:Refresh标头不是标准的。我永远不会使用RFC未涵盖的内容
zerkms,2011年

stackoverflow.com/questions/18305258/…导致我进入stackoverflow.com/questions/283752/refresh-http-header,该消息指出,刷新标头不仅不标准,还会导致Internet Explorer中的性能问题。
爱德华

Answers:


231
header( "refresh:5;url=wherever.php" );

这是php的设置方式header,它将wherever.php5秒内将您重定向到


请记住,必须先通过常规HTML标记,文件中的空白行或从PHP发送任何实际输出,然后调用header()。读取包含,或要求函数或另一个文件访问函数的代码,并在调用header()之前输出空格或空行,这是一个非常常见的错误。使用单个PHP / HTML文件时,存在相同的问题。(来源php.net


1
有趣的是,我以前从未见过这种方法...但是这不是要显示空白页还是只是闲置而没有任何消息,直到计时器用完了吗?
伊布

它将会显示页面...它要做的就是设置页眉巫婆,它将告诉浏览器在5秒内刷新页面,如果您真的想显示空白页面,只需使用die();
Teneff,2011年

2
不好的是:此标头不在HTTP标准中,客户端可以随意忽略它。
2013年

:) 好主意!如果要发送(保留)一些变量并在重新加载的页面中使用?
Mugur Ungureanu 2014年

它距此发布可能已经十亿年了,但是您如何在重定向时发布消息,例如“正在重定向页面,请稍候”
CAO

25

您可以在一段时间后使用javascript重定向

setTimeout(function () {
   window.location.href= 'http://www.google.com'; // the redirect goes here

},5000); // 5 seconds

11
问题是针对PHP的
本杰明·因塔尔

5
@Jami是真的,这就是为什么我说OP可以使用javascript来代替。
伊布

@BenjaminIntal如果浏览器忽略标题中的重定向,这也可以作为很好的后备。您必须使用不接受标题的浏览器,并且禁用Java脚本才能不接收重定向。
超级猫

18

您可以尝试以下方法:

header('Refresh: 10; URL=http://yoursite.com/page.php');

10秒。


11

您可能想使用php来写出一个meta标签。

<meta http-equiv="refresh" content="5;url=http://www.yoursite.com">

不建议这样做,但有可能。此示例中的5是刷新之前的秒数。


3
header( "refresh:5;url=wherever.php" );

确实,您可以按照teneff的说明使用此代码,但不必一定将标头放在任何已发送的输出之前(这会输出“无法重定位标头....:3错误”)。

为了解决这个问题,请ob_start();在输出任何html之前使用php函数。

要终止ob_end_flush();没有任何html输出后就放的ob 。

干杯!



2

打开另存为对话框以保存文件时,5秒后的PHP刷新对我不起作用:(header('Content-type:text / plain'); header(“ Content-Disposition:附件; filename = $ filename >“);)

单击另存为链接并保存文件后,定时刷新将在调用页面上停止。

但是,非常感谢,ibu的javascript解决方案一直在滴答和刷新我的网页,这正是我特定应用程序所需要的。因此,感谢您ibu在这里发布php问题的javascript解决方案。

您可以在一段时间后使用javascript重定向

setTimeout(function () {    
    window.location.href = 'http://www.google.com'; 
},5000); // 5 seconds

2

您可以在特定时间后使用此javascript代码进行重定向。希望它能工作。

setRedirectTime(function () 
{
   window.location.href= 'https://www.google.com'; // the redirect URL will be here

},10000); // 10 seconds

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.