PHP-重定向延迟
我使用下面的代码作为一种空引用脚本的形式,它工作得很好,但它只是将它们直接重定向到目标URL 我如何创建5秒的延迟,以便在重定向广告之前可以显示一些广告5秒?如何使用PHP-重定向延迟,php,redirect,Php,Redirect,我使用下面的代码作为一种空引用脚本的形式,它工作得很好,但它只是将它们直接重定向到目标URL 我如何创建5秒的延迟,以便在重定向广告之前可以显示一些广告5秒?如何使用 但是请注意,建议使用它,它使用header()。您可以发送带有超时刷新的php头 刷新标题起作用,但我想强调一些潜在问题: HTTP标准中没有指定它。维基百科说: 专有和非标准:由Netscape引入的标题扩展,大多数web浏览器支持 但是它已经存在了将近20年了,我不知道有哪个浏览器不支持它(尽管找不到参考) 某些浏览器不使用
但是请注意,建议使用它,它使用
header()
。您可以发送带有超时刷新的php头
刷新
标题起作用,但我想强调一些潜在问题:
- HTTP标准中没有指定它。维基百科说:
专有和非标准:由Netscape引入的标题扩展,大多数web浏览器支持
但是它已经存在了将近20年了,我不知道有哪个浏览器不支持它(尽管找不到参考)
- 某些浏览器不使用通过
刷新重定向的页面上的缓存。这已经在InternetExplorer上演示过了:我可以在Firefox上复制它。Chrome没有这个问题
备选方案:JavaScript
您可以在中间页面上添加JavaScript,该页面在X秒后打开一个新页面。在页面底部添加此选项以重定向到http://www.example.com/target
在5
秒之后:
<script type="text/javascript">
window.setTimeout(function() {
window.location.href='http://www.example.com/target';
}, 5000);
</script>
现在,如果可以获得最佳性能,页面将使用JavaScript重定向,否则将使用刷新。您也可以使用HTML:
为什么不使用sleep()函数?meta标记是最好的方法,因为它将处理推到浏览器上,而不是占用服务器资源5秒钟!我是公认答案的所有者。然而,meta refresh
答案的更新投票量让我认为,不接受我的答案而接受另一个答案可能是值得的。这不会真正起作用,因为sleep()会阻止页面的输出(并在页面上保持线程被占用)。最好的办法是使用某种形式的javascript来实现这一点。这样会延迟5秒钟的重新定向吗?我应该把它放在剧本的什么地方?是的,它会延迟5秒重新导演。您应该将它放在调用任何重定向方法之前,例如在开关($\u REQUEST['trunt']之前){
行。检查它,因为@RickvanBodegraven所说的很有趣,我对此很好奇。那么我需要将它置于每次尝试之上吗?因为在该脚本中有3个方法,我需要将其放置3次?这太奇怪了。我建议检查,何时建议放置设置时间限制(0);
开头。您也可以尝试使用标题(“刷新:5;url=where.php”);
,正如@Vahe Shadunts所建议的。这比上面的解决方案好,因为它不会阻止php进程。@krossovochkin没有必要停止应用程序,因为问题是如何延迟重定向,这意味着他想显示整个页面,然后重定向:)
<?php
header( "refresh:5; url=wherever.php" );
?>
<script type="text/javascript">
window.setTimeout(function() {
window.location.href='http://www.example.com/target';
}, 5000);
</script>
<noscript>
<meta http-equiv="refresh" content="5;url=http://www.example.com/target" />
</noscript>