Я пробовал решения по ссылкам ниже. Но никто из них не везет.
PHP-выход-текст перед тем , сном
PHP-вывод-данные до и после сна
PHP-времени задержки с использованием-об-флеш-с загрузкой-сообщения
На самом деле ниже мой сценарий.
<?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(); ?>
Тем не менее, я получаю весь контент, включая «Вы будете перенаправлены на …….» после $ 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(); } ?>
Вы можете использовать JavaScript для этой цели и передавать переменные из PHP на JavaScript, просто написав код JavaScript внутри «echo». Я думаю, что что-то подобное сделает трюк.
Для перенаправления приведенный ниже пример даст вам представление:
<?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 секунд; техника такова, как вы это делаете, зависит от вас.