Как использовать setInterval в PHP?

Я хочу спросить, как можно использовать функцию php снова и снова через некоторое время автоматически, как setInterval в Javascript. Мы устанавливаем время, и оно работает, пока сценарий не прерван или не закрыт.

index.php

<? $Wall = new Wall_Updates(); $updatesarray=$Wall->Updates(); foreach($updatesarray as $data) { $likes=$data['likes']; ?> <div id="likes"><?php echo $likes; ?></div> <? } ?> 

Функция Wall_Updates () определена здесь в FUNCTION.PHP

 <?php class Wall_Updates { public function Updates() { $myname=$_COOKIE['usename']; $query=mysql_query("SELECT * FROM posts WHERE name='$myname'"); while($row=mysql_fetch_array($query)) $data[]=$row; return $data; } } ?> в <?php class Wall_Updates { public function Updates() { $myname=$_COOKIE['usename']; $query=mysql_query("SELECT * FROM posts WHERE name='$myname'"); while($row=mysql_fetch_array($query)) $data[]=$row; return $data; } } ?> 

Я хочу, чтобы эта функция Wall_Updates () извлекала данные из mysql снова и снова. Так, она будет обновлена.

Для записи: я думаю, что это плохая идея. Но что угодно 🙂

Попробуйте этот код

 function setInterval($f, $milliseconds) { $seconds=(int)$milliseconds/1000; while(true) { $f(); sleep($seconds); } } в function setInterval($f, $milliseconds) { $seconds=(int)$milliseconds/1000; while(true) { $f(); sleep($seconds); } } 

Применение:

 setInterval(function(){ echo "hi!\n"; }, 1000); 

Или:

 $a=1; $b=2; setInterval(function() use($a, $b) { echo 'a='.$a.'; $b='.$b."\n"; }, 1000); 

Я бы предложил использовать setInterval для опроса результатов с .php-страницы с использованием AJAx, а затем вывести результаты.

Таким образом, это будет выглядеть примерно так, используя jQuery:

 <script> var poll = true; var getData = function() { if (poll) { $.get('getData.php', function(data) { $('#likes').html(data); }); } }; $(document).ready(function() { setInterval(getData, 5000); $('.comm').click(function() { poll = false; }); $('.comm').blur(function() { poll = true; }); }); </script> 

Непонятно, чего вы хотите добиться точно.

Вы знаете, что PHP поставляет контент только по запросу?

Если вы хотите, чтобы сервер обновлял что-то время от времени (например, файл), используйте cronjob (on * nix).

Если вы хотите, чтобы ваш WEBPAGE повторно запрашивал что-то, сделайте это в javascript и вызовите скрипт PHP, который поставляет свежий контент.

В отличие от Javascript, PHP выполняется на стороне сервера. В PHP нет функции setTimeout. Вы можете приблизиться, используя cronjobs или другие PHP-скрипты, которые, однако, называют ваши скрипты.