Intereting Posts

PHP эхо-текст, затем спящий 10 секунд, затем повторите другой текст

Я пробовал решения по ссылкам ниже. Но никто из них не везет.

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 секунд; техника такова, как вы это делаете, зависит от вас.