функция sleep в PHP на вертуальном сервере не работает как нужно , ( в PHP онлайн тесте, работает нормально) задача сделать интервал на кaждое предложение в 3 секунды (
echo '<p>Rong see sõitis tsuhh tsuhh tsuhh,</p>';
flush();
sleep(3);
echo '<p>piilupart oli rongijuht.</p>';
sleep(3);
echo '<p>Rattad tegid rat tat taa,</p>';
sleep(3);
echo '<p>rat tat taa ja tat tat taa.</p>';
sleep(3);
echo '<p>Aga seal rongi peal,</p>';
sleep(3);
echo '<p>kas sa tead, kes olid seal?</p>';
sleep(3);)
просто виснет и загружается весь текст, а не выводит , каждое предложение с интервалом в 3 секунды
Сохраняете набор предложений в массив, проходите в цикле по массиву, и на каждой итерации делаете сброс буфера и трёхсекундный сон:
$words = [
'Rong see sõitis tsuhh tsuhh tsuhh,',
'piilupart oli rongijuht.',
'Rattad tegid rat tat taa,',
'rat tat taa ja tat tat taa.',
'Aga seal rongi peal,',
'kas sa tead, kes olid seal?',
];
foreach ($words as $word) {
echo "<p>$word</p>";
flush();
sleep(3);
}
UPD Ещё вариант с передачей GET-параметров:
$sleep = 3; // Время обновления
$file = 'view.txt';
$words = [
'Rong see sõitis tsuhh tsuhh tsuhh,',
'piilupart oli rongijuht.',
'Rattad tegid rat tat taa,',
'rat tat taa ja tat tat taa.',
'Aga seal rongi peal,',
'kas sa tead, kes olid seal?'
];
$k = isset($_GET['k']) ? (int) abs($_GET['k']) : 0;
$view = file_exists($file) ? file_get_contents($file) : '';
$view .= "<p>$words[$k]</p>";
file_put_contents($file, $view);
empty($words[++$k]) ?: header("Refresh:$sleep; url=?k=$k");
if ($k == count($words)) {
file_put_contents($file, '');
$view .= '<a href="?">Refresh</a>';
}
echo $view;
Но у этого варианта недостаток в том, что обновлять страницу можно только по ссылке
(или руками в адресной строке удалять параметры)
См. Демо на хостинге
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости