每 5 秒生成新的随机数 PHP
Generate new random number every 5 seconds PHP
我需要每 5 秒用一个新的随机值更新一个变量 $x(长度并不重要)。我知道如何使用有限循环来完成它,但是如果我希望它是连续的并且总是只更新。我知道如何通过更新 header 来做到这一点,但由于我不希望重新加载整个页面,所以这不是一个真正的选择。下面我试图用无限循环来欺骗它(不是最好的方法),但我也看到 运行 这是它一遍又一遍地给我相同的数字。
有什么想法吗?
<?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中(刷新):
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>
<?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
我需要每 5 秒用一个新的随机值更新一个变量 $x(长度并不重要)。我知道如何使用有限循环来完成它,但是如果我希望它是连续的并且总是只更新。我知道如何通过更新 header 来做到这一点,但由于我不希望重新加载整个页面,所以这不是一个真正的选择。下面我试图用无限循环来欺骗它(不是最好的方法),但我也看到 运行 这是它一遍又一遍地给我相同的数字。
有什么想法吗?
<?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中(刷新):
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>
<?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