Php 每5秒生成一个新的随机数

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

我需要每5秒用一个新的随机值更新一个变量$x(长度不是很重要)。我知道如何使用有限循环,但是如果我希望它是连续的并且总是更新的话。我知道如何只更新页眉,但由于我不希望整个页面重新加载,这不是一个真正的选项。下面我试着用一个无限循环来欺骗它(这不是最好的方法),但我也看到运行这个循环时,它一遍又一遍地给我相同的数字

有什么想法吗

    <?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