网站上的服务器端随机数生成器


Server Side Random Number Generator on a Website

我有这个网站,请看,它目前每5分钟生成一个数字,每5秒生成一个较小的数字,并将该数字与第一个数字相加,以产生数字波动的错觉。看看网站可能会有所帮助。

http://spinningcat.us/

这可能看起来很傻,基本上是一个内部笑话。

无论如何,问题是,据我所知,给出的数字是客户端的,而且因人而异。有可能将其设置为服务器端吗?这样每个同时访问网页的人都会看到相同的号码?

感谢

您需要为随机数生成器种子,以便php rand()函数将向所有访问者返回相同的数字,直到生成下一个随机数。

使用time() 服务器的当前时间

$fiveMinSeed = floor(time() / 300);
srand($fiveMinSeed);
$firstNumber = rand();

$fiveSecondSeed = floor(time() / 5);
srand($fiveSecondSeed);
$secondNumber = rand();
echo $firstNumber + $secondNumber;

这将生成两个不同的种子,一个是基于每5分钟变化一次的时间,另一个是每5秒变化一次。然后使用这些值,你会得到一个"随机"数字,在种子改变之前,每个人的数字都是一样的。

您可以使用AJAX请求来获取数字并显示在页面上。

http://php.net/manual/en/function.srand.php

注:

如果使用mt_rand(),则使用mt_srand() 设置种子

您可以使用Ajax。Ajax向服务器发送一个请求,服务器将处理该请求并返回一个响应,而无需重新加载页面。这里有一个很好的教程。

编辑:试试这个:

<script>
function loadXMLDoc(){
var xmlhttp;
if (window.XMLHttpRequest){// code for IE7+, Firefox, Chrome, Opera, Safari
  xmlhttp=new XMLHttpRequest();
}
else{// code for IE6, IE5
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function(){
  if (xmlhttp.readyState==4 && xmlhttp.status==200){
    document.getElementById("myDiv").innerHTML=xmlhttp.responseText;
  }
}
xmlhttp.open("GET", "randomnumber.php");
xmlhttp.send();
}
setInterval(function(){loaxXMLDoc()},1000);
</script>

在PHP中:

echo $randomNumber

(我不是PHP人员,所以我不知道如何生成随机数。)