PHP echo text然后睡10秒然后回显另一个文本

时间:2015-07-10 15:25:10

标签: php

我已尝试过以下链接的解决方案。但他们都没有运气。

php-output-text-before-sleep

php-output-data-before-and-after-sleep

php-time-delay-using-ob-flush-with-loading-message

实际上下面是我的剧本。

<?php
include 'ini/INI.class.php';
$CompIP = $_SERVER['REMOTE_ADDR'];
$inidata = (parse_ini_file("guard.ini",true));
$atm = time()-$inidata["guard"][$CompIP];
if ($atm>60) { $atm = 1; }
echo "<p>You will be redirected to report page in <span id='counter'>" .     $atm . "</span> second(s).</p>"; 
sleep($atm);
//my 
//100 
//line 
//user report from mysql
$ini = new INI('guard.ini');
$ini->data['guard'][$CompIP] = time();
$ini->write();
?>

我仍然可以获得包含的所有内容&#39;您将被重定向到.......&#39;在$ atm(暂停秒数)秒之后。

我的解决方法

<?php
include 'ini/INI.class.php';
$CompIP = $_SERVER['REMOTE_ADDR'];
$inidata = (parse_ini_file("guard.ini",true));
$atm = (time()-(isset($inidata["guard"][$CompIP]) ? $inidata["guard"][$CompIP] : 0));
if ($atm<60)
{
echo "<p>You will be redirected to report page in <span id='counter'>" . (60-$atm) . "</span> second(s).</p> <script type='text/javascript'> function countdown() { var j = document.getElementById('counter'); j.innerHTML = parseInt(j.innerHTML)-1; if (parseInt(j.innerHTML)<=0) { j.innerHTML = 0; location.href = 'tr.php'; } } for (i=1;i<=" . (60-$atm) . ";i++) { setTimeout(function(){ countdown(); },i*1000); } </script>";
} else { mysqlreport; $ini = new INI('guard.ini');
$ini->data['guard'][$CompIP] = time();
$ini->write();
}
?> 

1 个答案:

答案 0 :(得分:1)

您可以将JavaScript用于此目的,只需将JavaScript代码写入&#34; echo&#34;即可将变量从PHP传递到JavaScript。我认为这样的事情会起到作用。

对于重定向,以下示例将为您提供一个想法:

<?php

$url = "http://google.com";
$step = "1000";
$start = 12;

echo 'Redirection After <h1 id="counter">'.$start.'</h1> ';

echo '
  <script>

    var x = '.$start.';

    setInterval(function(){

     if(x==1){
        window.location = "'.$url.'";
     }

      document.getElementById("counter").innerHTML = x;

      x--;

   }, "'.$step.'");

  </script>';
?>

至于您要输出的内容,只需放置一个标记和JavaScript。此外,您可以每10秒更新一次;技术就是这个,你如何做到这一点取决于你。