PHP缓存是否包含在运行时?

时间:2012-06-25 19:11:44

标签: 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脚本中调用了包含我认为缓存文件的脚本。我回去看一些人要求的代码并注意到它。谢谢大家。

2 个答案:

答案 0 :(得分:1)

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

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

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

然后在程序开始时将其包含一次。

我知道这并没有直接回答这个问题,但这样做是更好的编码实践,并且会使您的代码更易于管理和维护。

希望有所帮助。

答案 1 :(得分:0)

您有可能在该文件中使用相同的值为pRNG播种。标题影响浏览器,而不是脚本。

我确实知道包含的文件没有被缓存:我制作了一个控制台程序,其中包含一个文件来实现每个“功能”。在不重新启动程序的情况下更改文件仍然允许它加载更新的文件。

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

相关问题