0

我需要每 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();   
}


?>
4

2 回答 2

2

在 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

在 JS 中(不刷新):

<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>
于 2018-03-27T09:17:27.007 回答
1
<?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
于 2018-03-27T10:40:53.897 回答