Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/290.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP缓存脚本赢得';t缓存php文件_Php_Caching - Fatal编程技术网

PHP缓存脚本赢得';t缓存php文件

PHP缓存脚本赢得';t缓存php文件,php,caching,Php,Caching,我试图缓存一个在一个网站上成功的PHP文件,但是当我在另一个网站上实现代码时,它没有被缓存。我用Firebug检查了它,得到了一个200OK状态,这意味着每次页面刷新时它都会从服务器下载它 这是我的密码: $now = time(); $generatedAt = gmdate('D, d M Y H:i:s T', $now); $lastModified = gmdate('D, d M Y 00:00:00 T', $now); $expiresAt = gmda

我试图缓存一个在一个网站上成功的PHP文件,但是当我在另一个网站上实现代码时,它没有被缓存。我用Firebug检查了它,得到了一个
200OK
状态,这意味着每次页面刷新时它都会从服务器下载它

这是我的密码:

$now          = time();
$generatedAt  = gmdate('D, d M Y H:i:s T', $now);
$lastModified = gmdate('D, d M Y 00:00:00 T', $now);
$expiresAt    = gmdate('D, d M Y H:i:s T', strtotime($lastModified) + 8035200);
$maxAge       = strtotime($expiresAt) - strtotime($generatedAt);

header('Last-modified: '.$lastModified);
header('Cache-control: max-age='.$maxAge);
额外信息:

它是从我的另一个站点复制的,我得到了
304未修改
状态,这意味着它确实得到了缓存

此代码位于文件顶部,没有回音或输出,这意味着尚未发送任何标题


我的.htaccess文件也配置正确,我没有指定它不应该缓存PHP文件。

您尝试过其他浏览器吗?至少可以说,Firefox的缓存是一堆热气腾腾的*。另外,.htaccess不是唯一的东西-Apache配置很可能需要对脚本所在目录的AllowOverride指令进行一些调整


另外,尝试使用Wireshark观察网络上的内容-发送哪些标头,真正接收哪些标头?

您尝试过其他浏览器吗?至少可以说,Firefox的缓存是一堆热气腾腾的*。另外,.htaccess不是唯一的东西-Apache配置很可能需要对脚本所在目录的AllowOverride指令进行一些调整


而且,尝试使用Wireshark来观察网络上发生的事情-发送了哪些头,真正接收到了哪些头?

我想你应该修复这个
上次修改:
参数。

我想你应该修复这个
上次修改:
参数。

你在试图缓存的脚本中使用了会话吗?没有脚本中的会话在我的整个网站中都没有好的。PHP喜欢在涉及会话时发送破坏缓存的头文件。您可以检查并查看请求脚本看到的实际头是什么吗?拥有它们会很有用,并且会使实际发生的事情变得非常明显。header(缓存控制)下面还有一个header,它是:header(内容类型)您可以在Linux或Windows客户端上使用
curl-I URL
读取发送的标题。是否在试图缓存的脚本中使用会话?脚本中没有会话,在我的整个网站中也没有会话。好的。PHP喜欢在涉及会话时发送破坏缓存的头文件。您可以检查并查看请求脚本看到的实际头是什么吗?拥有它们会很有用,并且会使实际发生的事情变得非常明显。在header(缓存控制)下面还有一个header,它是:header(内容类型),您可以在Linux或Windows客户端上使用
curl-I URL
来读取发送的header。