标头位置延迟

osh*_*nen 7 php

我有以下PHP代码,我想添加延迟:

<?php
    echo "Message has been sent.";
    header("Location: page2.php", true, 303);
    exit;
?>
Run Code Online (Sandbox Code Playgroud)

上面的代码发生得太快,所以我看不到消息:

我试过了:

<?php
    sleep(5);
    echo "Message has been sent.";
    header("Location: page2.php", true, 303);
    exit;
?>
Run Code Online (Sandbox Code Playgroud)

这也没有显示消息,但它会睡5秒钟,这只是浪费时间.

在重定向之前,如何让它显示5秒钟的消息?

nic*_*ckb 31

您无法通过HTTP位置重定向执行此操作,因为只要浏览器获得标头,就会发生此重定向.而是在标头中使用刷新重定向:

header( "Refresh:5; url=http://www.example.com/page2.php", true, 303);
Run Code Online (Sandbox Code Playgroud)

应该适用于现代浏览器,但它不是标准化的,因此要获得等效功能,请使用元刷新重定向(意味着您还必须输出完整的HTML):

<meta http-equiv="refresh" content="5;url=http://www.example.com/page2.php"> 
Run Code Online (Sandbox Code Playgroud)

维基百科页面:

用于重定向,或者在创建新资源时使用.此刷新在X秒后重定向.这是由Netscape引入并由大多数Web浏览器支持的专有非标准标头扩展.