PHP 缓存是否在运行时包含



我在同一页面上多次包含相同的文件。我注意到当我这样做时,似乎 PHP 正在缓存文件。当我使用 rand 函数生成一个随机数时,它在两个包含中都是相同的。有人知道我如何阻止PHP这样做吗?我尝试了一些不同的标题函数,但它们不起作用:

header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); // Date in the past
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT"); // always modified
header("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1
header("Pragma: no-cache"); // HTTP/1.0

编辑:好的,我很愚蠢,我忘记了我正在从我认为正在缓存文件的 jquery 脚本调用包含。我回去看了看有人要求的代码并注意到了它。谢谢大家。

我建议多次包含同一个文件并不是特别好的做法。

更好的解决方案是包含它一次,并多次调用它包含的函数。

显然,这将意味着改变代码的工作方式——我想它目前是作为代码块编写的,一旦它包含它就会运行。您需要更改它,以便将其包含在一个函数(或多个函数,根据需要)中,以便可以随意调用它。

然后只需在程序开始时包含一次即可。

我知道这并不能直接回答这个问题,但这样做是更好的编码实践,并且会让你的代码更容易管理和维护。

希望有帮助。

您很可能在该文件中为pRNG设定了相同值的种子。标头会影响浏览器,而不是脚本。

确定包含的文件不会被缓存:我制作了一个控制台程序,其中每个"功能"都是通过包含一个文件来实现的。在不重新启动程序的情况下更改文件仍允许它加载更新的文件。

所以,你的问题要么是随机种子,要么是其他地方的东西。尝试echo microtime()看看它是否两次都给出相同的结果。

最新更新