我想问一下,如何在一段时间后一次又一次地使用php函数,就像Javascript中的setInterval一样.我们设置时间,直到脚本中止或关闭为止.
的index.php
<?
$Wall = new Wall_Updates();
$updatesarray=$Wall->Updates();
foreach($updatesarray as $data)
{
$likes=$data['likes'];
?>
<div id="likes"><?php echo $likes; ?></div>
<?
}
?>
Run Code Online (Sandbox Code Playgroud)
而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;
}
}
?>
Run Code Online (Sandbox Code Playgroud)
我希望这个Wall_Updates()函数一次又一次地从mysql中获取数据.所以,它将被更新.
Rus*_*gan 25
记录:我认为这是个坏主意.但是无所谓 :)
试试这个代码
function setInterval($f, $milliseconds)
{
$seconds=(int)$milliseconds/1000;
while(true)
{
$f();
sleep($seconds);
}
}
Run Code Online (Sandbox Code Playgroud)
用法:
setInterval(function(){
echo "hi!\n";
}, 1000);
Run Code Online (Sandbox Code Playgroud)
要么:
$a=1;
$b=2;
setInterval(function() use($a, $b) {
echo 'a='.$a.'; $b='.$b."\n";
}, 1000);
Run Code Online (Sandbox Code Playgroud)
我建议使用setInterval使用AJAx从.php页面轮询结果,然后输出结果.
所以使用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>
Run Code Online (Sandbox Code Playgroud)
您的解决方案非常简单:
$event = new EVTimer(10,2, function() {
Do your things .. :)
});
Run Code Online (Sandbox Code Playgroud)
https://www.php.net/manual/en/ev.examples.php