Я хочу спросить, как можно использовать функцию 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-скрипты, которые, однако, называют ваши скрипты.