我可以使用时间点吗?
就像是:
header('refresh:1.5; url=xxx');
是的,您可以使用:
header('refresh: 2; url=someurl.php');
时间在哪里3
,以秒为单位。更多信息header
可以在这里找到。
但无论如何,我总是提倡组合以避免某些浏览器出现问题:
使用时,header
我认为您不能使用像1.5
. 无论如何,我怀疑任何用户都注意到2
和1.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);
标头(“刷新:5;url=wherever.php”);
参考: http: //php.net/manual/en/function.header.php
是的,你可以,但在任何标头已经发送之前:请记住,header() 必须在发送任何实际输出之前调用,无论是通过普通 HTML 标记、文件中的空白行还是从 PHP。使用 include 或 require 函数或其他文件访问函数读取代码并在调用 header() 之前输出空格或空行是一个非常常见的错误。使用单个 PHP/HTML 文件时也存在同样的问题。 http://php.net/manual/en/function.header.php
如果您需要 1 到 2 秒之间的时间,您可以使用 1.5,正如您在问题中声明的那样。
refresh
不是 HTTP 标准的一部分。它是由 Netscape 引入并由其他浏览器实现的遗留方法。即使它适用于一种浏览器,您也不能确定它适用于所有浏览器。
W3C 不鼓励使用它,有关详细信息,请参阅此 Wikipedia 文章。尤其是“缺点”和“替代方案”部分很有趣。
我更喜欢使用它header('refresh ...')
:
usleep(1500000);
header("Location: xxx");
这将发送一个干净的 302 重定向,并确保它符合 HTTP 并适用于每个浏览器。