Php 每5秒生成一个新的随机数
我需要每5秒用一个新的随机值更新一个变量$x(长度不是很重要)。我知道如何使用有限循环,但是如果我希望它是连续的并且总是更新的话。我知道如何只更新页眉,但由于我不希望整个页面重新加载,这不是一个真正的选项。下面我试着用一个无限循环来欺骗它(这不是最好的方法),但我也看到运行这个循环时,它一遍又一遍地给我相同的数字 有什么想法吗Php 每5秒生成一个新的随机数,php,random,self-updating,Php,Random,Self Updating,我需要每5秒用一个新的随机值更新一个变量$x(长度不是很重要)。我知道如何使用有限循环,但是如果我希望它是连续的并且总是更新的话。我知道如何只更新页眉,但由于我不希望整个页面重新加载,这不是一个真正的选项。下面我试着用一个无限循环来欺骗它(这不是最好的方法),但我也看到运行这个循环时,它一遍又一遍地给我相同的数字 有什么想法吗 <?php echo "Random Number Updating <br>"; $n = 5; $x = rand(1,10); fun
<?php
echo "Random Number Updating <br>";
$n = 5;
$x = rand(1,10);
function random() {
$interval = 5; // Interval in seconds
srand(floor(time() / $interval));
$x = rand(0, 10);
echo "$x";
}
while ($x <= 6){
random();
}
?>
在PHP中(带刷新):
在JS中(不刷新):
--
var update=document.getElementById(“更新”);
setInterval(()=>update.innerHTML=Math.floor(Math.random()*10),5000;
//5*1000毫秒=5秒----------------------------------------^^^^
在PHP中(带刷新):
在JS中(不刷新):
--
var update=document.getElementById(“更新”);
setInterval(()=>update.innerHTML=Math.floor(Math.random()*10),5000;
//5*1000毫秒=5秒----------------------------------------^^^^
这是一个CLI脚本吗?不,只是单独使用。我正在测试一些东西,并且需要一些能以5秒左右的速度吐出一个随机数的东西……在你的代码中没有任何东西能等待5秒或任何秒数。因此,您正在播种相同的数字并获得相同的结果。@jeroen,那么您能给我一个如何修复此问题的建议吗?我认为您可以使用session和ajax执行相同的操作。这是一个CLI脚本吗?不,只是单机版。我正在测试一些东西,并且需要一些能以5秒左右的速度吐出一个随机数的东西……在你的代码中没有任何东西能等待5秒或任何秒数。所以你是在播种相同的数字,得到相同的结果。@jeroen你能给我一个建议,如何解决这个问题吗?我想你可以使用session和ajax来做同样的事情。while(true)不会{
创建一个无限循环?@akintundeloawale尝试运行它并等待5秒钟:)真;)还没有喝咖啡@AniketSahrawatPHP MUST DIE-Request>PHP>Response>DIE。它不是为长时间运行的脚本而设计的。特别是在Web服务器上,尽管您更改了PHP设置,它最终还是会超时。这是我所遇到的最佳解决方案如果你坚持使用PHP来完成这个任务。因此我投票支持这个答案,我希望这就是你实际使用的解决方案。不会while(true){
创建一个无限循环?@akintundeloawale尝试运行它并等待5秒钟:)真;)还没有喝咖啡@AniketSahrawatPHP MUST DIE-Request>PHP>Response>DIE。它不是为长时间运行的脚本而设计的。特别是在Web服务器上,尽管您更改了PHP设置,它最终还是会超时。这是我所遇到的最佳解决方案如果你坚持使用PHP来完成这项任务,那么我投票支持这个答案,我希望这就是你实际使用的解决方案。
while(true) {
if( time() % 5 == 0 ) { // get time in seconds and check if it is multiple of 5
echo rand(0, 10);
break; // break the loop
} else {
sleep(1);
}
}
header("Refresh:5"); // refresh after 5 seconds
<div id="update">--</div>
<script>
var update = document.getElementById("update");
setInterval(() => update.innerHTML = Math.floor(Math.random() * 10), 5000);
// 5 * 1000 ms = 5 seconds ----------------------------------------^^^^
</script>
<?php
function display_random_numbers($limit, $interval)
{
$counter = 1;
while($counter++ <= $limit) {
$number = rand(1, 10);
echo $number . "\n";
sleep($interval);
}
}
display_random_numbers(10, 1);
1
2
10
9
8
9
9
8
4
6