Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/276.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP-重定向延迟_Php_Redirect - Fatal编程技术网

PHP-重定向延迟

PHP-重定向延迟,php,redirect,Php,Redirect,我使用下面的代码作为一种空引用脚本的形式,它工作得很好,但它只是将它们直接重定向到目标URL 我如何创建5秒的延迟,以便在重定向广告之前可以显示一些广告5秒?如何使用 但是请注意,建议使用它,它使用header()。您可以发送带有超时刷新的php头 刷新标题起作用,但我想强调一些潜在问题: HTTP标准中没有指定它。维基百科说: 专有和非标准:由Netscape引入的标题扩展,大多数web浏览器支持 但是它已经存在了将近20年了,我不知道有哪个浏览器不支持它(尽管找不到参考) 某些浏览器不使用

我使用下面的代码作为一种空引用脚本的形式,它工作得很好,但它只是将它们直接重定向到目标URL

我如何创建5秒的延迟,以便在重定向广告之前可以显示一些广告5秒?

如何使用


但是请注意,建议使用它,它使用
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>