PHP,如何创建倒计时器?

时间:2009-05-13 09:38:59

标签: php javascript redirect

如何做到这一点:

“您将在5 ..(4,3,2,1)秒内重定向到domain.com”

在php ???

7 个答案:

答案 0 :(得分:14)

我很确定javascript是你最好的选择。唯一的另一种方法是每秒重定向到一个新的URL,这在我看来是过度的。

以下是样本倒计时的完整源代码:

<html>
  <head>
    <meta http-equiv="refresh" content="5;url=http://example.com" />
    <title>Countdown Sample</title>
  </head>
  <body>
    you will be redirected to example.com in <span id="seconds">5</span>.
    <script>
      var seconds = 5;
      setInterval(
        function(){
          document.getElementById('seconds').innerHTML = --seconds;
        }, 1000
      );
    </script>
  </body>
</html>

修改

以下是Alnitak建议的改进版本:

我已将JavaScript更改为重定向用户,并防止倒计时低于1,并且我为<noscript>周围的<meta>标记添加了<html> <head> <noscript> <meta http-equiv="refresh" content="5;url=http://example.com" /> </noscript> <title>Countdown Sample</title> </head> <body> you will be redirected to example.com in <span id="seconds">5</span>. <script> var seconds = 5; setInterval( function(){ if (seconds <= 1) { window.location = 'http://example.com'; } else { document.getElementById('seconds').innerHTML = --seconds; } }, 1000 ); </script> </body> </html> 标记,供没有JavaScript的用户使用。

{{1}}

答案 1 :(得分:12)

最好不要在PHP中完成,因为它需要Web服务器在倒计时运行时保持与客户端的连接。

使用setInterval()在Javascript中可以做得更好(恕我直言)。

答案 2 :(得分:5)

您应该使用javascript来显示倒计时,在php中您可以为重定向设置一个计时器,如下所示:

header('refresh: 5; url=http://www.stackoverflow.com');

其中refresh:x设置等待重定向的时间(以秒为单位)。

答案 3 :(得分:2)

简短的回答:你不能。

答案很长:PHP是服务器端,因此,只要页面被发送,PHP就与它无关。您可以通过多种方式寻找所需的信息。您可以使用javascript(允许您进行'可视'倒计时)或在文档元素中设置元刷新标记,如下所示:&lt; meta http-equiv =“refresh”content =“5; url = http://yoursite.com“&GT;

答案 4 :(得分:2)

您可以使用setInterval()函数实现Javascript倒计时,每秒调用一次,持续5秒,以创建计时器功能来倒计时。时间结束后,您可以使用document的{​​{1}}属性将用户重定向到该页面;例如,如果关闭Javascript,创建一个指向页面的硬链接也是有益的。

例如:

location.href

答案 5 :(得分:1)

        感谢您的反馈意见         

                function timer(stamp)
                {
                    var temp=stamp;
                    temp=temp-1;
                    document.getElementById('mylbl').innerHTML = temp;
                    if(temp<=0)
                    {
                        window.location = "http://www.tasolglobal.com"
                        exit();
                    }
                    setTimeout("timer("+temp+")",1000); 
                }



    </script>

</head>

<body bgcolor="black" text="white" onload="timer(10+1)" >

    <?php
        //$sec=5;
        $to=$_REQUEST['from'];          //Set your email address where you want to get feedback
        $from=$_REQUEST['from'];        //This will be the senders email add
        $message=$_REQUEST['mesg'];     //This contains message from feed fackback form
        $subject=$_REQUEST['subject'];      //This contains subject of Feedback form. You can also set value as                                     feedback so you can find feedback mail easily
        $header="From: $from";          //Header of the feedback mail
        mail($to,$subject,$message,$header);

        echo "<br><br><h1>Thank You For Your Feedback...
            </h1><br><font color=red size=3>Your Will Be Redirected To HOME PAGE... Within ";
            echo "<label id=mylbl></label>" ;
        echo " Seconds";            
    ?>
</body>

答案 6 :(得分:0)

你可以混合javascript和php,当你进入页面时,你需要从数据库到php倒计时,然后用javascript计算它。类似的东西由http://free-countdown.co.nr/

使用