如何延迟代码执行?

时间:2012-06-01 21:40:44

标签: php redirect

如何延迟在php中执行代码块?

    if ($qry->execute($leads)) {
    echo'<div class="note success">' . 
            $_POST["first_name"] . ', Your entry was successful!
        </div>';

        // Set up email params

此代码显示“成功”消息,然后通过电子邮件发送给用户。显示消息后,我想重定向用户。

这在PHP中可行吗?我需要使用JavaScript吗?

谢谢!

3 个答案:

答案 0 :(得分:13)

如果要延迟执行PHP代码,可以使用sleep功能。但是,您似乎想要延迟客户端的重定向。您可以使用JavaScript,<meta>刷新和Refresh标题执行此操作。

使用Refresh标题:

header('Refresh: «timeout in seconds»; URL=http://example.com/myurl');

使用<meta>刷新:

    <meta http-equiv="refresh" content="«timeout in seconds»; URL=http://example.com/myurl">

使用JavaScript:

setTimeout(function(){
 location.replace("/myurl");
},«timeout in milliseconds»);

最好是使用这三者的组合,并为已禁用这些重定向技术的用户显示一条消息,其中包含允许他们手动点击的链接。

答案 1 :(得分:3)

由于已经发生输出,因此无法进行HTTP标头重定向。相反,您应该设置元刷新以在HTML文档的<head>中重定向用户:

<meta http-equiv="refresh" content="10;url=http://www.example.com/newpage.php" /> 

答案 2 :(得分:2)

PHP是一种服务器端语言,在向用户显示任何内容之前执行。

这是在呈现页面之后必须发生的事情,所以是Javascript将是更好的解决方案。