PHP rand只运行一次

时间:2017-02-17 15:59:17

标签: php

我在a testsite上获得了以下index.php:

<?php
    $r = rand(1, 1000);
    $mtr=mt_rand(1, 1000);
    echo "rand(1, 1000): " . $r;
    echo "<br>mt_rand(1, 1000): " . $mtr;
?>

出于某种原因,我只能在页面加载时运行一次,给我两个随机数,应该是,如果我用F5重新加载页面,可能再一次。但是,在几分钟过去之前,它拒绝产生任何随机数字。

我觉得我错过了一些明显的东西。服务器由MissHosting.se托管,并运行php5.6。客户支持坚持认为这是一个代码问题。我很乐意根据要求提供任何进一步的信息。

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

问题似乎来自于您的服务器使用某种缓存这一事实。为了排除客户端缓存(即浏览器缓存),我使用curl多次请求页面,这不会进行任何缓存。所以它是一个服务器缓存。

现在,如果我们用curl查看标题:

~$ curl http://sithu.net/testinggrounds/ -I
HTTP/1.1 200 OK
Date: Fri, 17 Feb 2017 16:09:36 GMT
Vary: Accept-Encoding
Content-Type: text/html; charset=UTF-8
X-Varnish: 6817501 6109691
Age: 9
X-Cache: HIT
X-Cache-Hits: 1
Accept-Ranges:  none
Connection: keep-alive

标题清楚地表明服务器进行了缓存,我们已经点击了服务器缓存(X-Cache: HITX-Cache-Hits: 1)。因此,下一步将是找出如何/在何处更改服务器缓存机制。

X-Varnish标头表示您的服务器/托管服务商正在使用Varnish HTTP Cache进行缓存。