2013-02-04 64 views
0

我可以使用时间点吗?php头功能

类似:

header('refresh:1.5; url=xxx'); 
+0

你试过了吗? – ajon

+0

试过了,看来工作! 谢谢大家 –

+0

neverless我建议阅读[“维基百科文章中的”缺点“和”选择“](http://en.wikipedia.org/wiki/HTTP_refresh)。 –

回答

0

是的,你可以使用:

header('refresh: 2; url=someurl.php'); 

3是以秒为单位的时间。有关header的更多信息总是可以找到here

但无论如何,我一直主张组合,以避免某些浏览器的问题:

  • 头(如你正在做的)
  • 元标签(在HTML头)
  • 的JavaScript超时

当使用header我不认为你可以使用像1.5这样的小数。在任何情况下,我怀疑任何用户注意到21.5秒之间的差异。但是如果这对你很重要,你可以通过使用JavaScript超时来实现。

重定向方式

元标记:

<meta http-equiv="refresh" content="2;url=http://www.yourwebsite.com/someurl.php"> 

JavaScript的:

setTimeout(function() { 
    window.location = "http://www.yourwebsite.com/someurl.php"; 
}, 1500); 
+0

我需要1到2秒之间的时间 –

+0

@jk jk阅读我的更新。 – Jules

+0

我测试了它,你可以使用小数,但我没有计时,这意味着实际的实现可能会将它转换为一个整数,所以它将等于1. – ajon

0

是U可以,但在此之前已经发送的任何标题: 记住header()函数必须在发送任何实际输出之前调用,无论是普通的HTML标签,在一个文件中的空行,或来自PHP。使用include或require函数或其他文件访问函数读取代码,并在调用header()之前输出空格或空行是非常常见的错误。使用单个PHP/HTML文件时存在同样的问题。 http://php.net/manual/en/function.header.php

0

如果您需要1到2秒之间的时间,您可以使用1.5在您的问题中声明。

0

refresh不是HTTP标准的一部分。它是由Netscape引入并由其他浏览器实现的传统方法。即使它在一个浏览器上运行,您也无法确定它可以在所有浏览器上运行。

W3C不鼓励使用它,详情请参阅this Wikipedia article。特别是“缺点”和“替代品”部分是有趣的。

我宁愿过header('refresh ...')使用此:

usleep(1500000); 
header("Location: xxx"); 

这将发出一个干净的302重定向,并确保它的HTTP符合并与每一个浏览器。