php中怎么让图片没有缓存文件夹
-
在PHP中,可以通过设置响应头来禁止浏览器缓存图片文件。
可以使用以下代码来实现:
“`php
“`上述代码中,首先设置了`Cache-Control`头,指定了一些缓存控制参数,如`no-store`表示不缓存文件,`no-cache`表示先进行验证,`must-revalidate`表示必须重新进行验证,`max-age=0`表示立即过期。
然后设置了`Pragma: no-cache`头,表示不使用缓存。
最后通过设置`Expires`头为过去的时间,确保浏览器不会使用缓存的版本。
接下来可以使用`readfile`函数读取图片文件,并设置`Content-Type`头为对应的图片类型(例如`image/jpeg`)。
这样,通过以上设置,浏览器在请求该图片时将不会缓存文件夹。
2年前 -
在PHP中,可以通过设置HTTP头来禁止浏览器缓存图片文件。以下是几种实现方法:
1. 使用header()函数设置缓存控制头信息:
“`php
header(‘Cache-Control: no-cache, no-store, must-revalidate’);
header(‘Pragma: no-cache’);
header(‘Expires: 0’);
“`2. 使用header()函数设置ETag和Last-Modified头信息,并检查If-None-Match和If-Modified-Since请求头来判断是否需要重新加载图片:
“`php
$etag = md5_file($path_to_image);
$last_modified = filemtime($path_to_image);header(‘ETag: ‘ . $etag);
header(‘Last-Modified: ‘ . gmdate(‘D, d M Y H:i:s’, $last_modified) . ‘ GMT’);if(isset($_SERVER[‘HTTP_IF_NONE_MATCH’]) && $_SERVER[‘HTTP_IF_NONE_MATCH’] == $etag){
header(‘HTTP/1.1 304 Not Modified’);
exit();
}if(isset($_SERVER[‘HTTP_IF_MODIFIED_SINCE’]) && strtotime($_SERVER[‘HTTP_IF_MODIFIED_SINCE’]) >= $last_modified){
header(‘HTTP/1.1 304 Not Modified’);
exit();
}
“`3. 使用header()函数设置Expires头信息,将过期时间设置为一个过去的时间戳:
“`php
header(‘Expires: ‘ . gmdate(‘D, d M Y H:i:s’, time() – 3600) . ‘ GMT’);
“`4. 使用Apache的.htaccess文件来设置缓存控制信息:
“`
FileETag None
Header unset ETag
Header set Cache-Control “max-age=0, no-cache, no-store, must-revalidate”
Header set Pragma “no-cache”
Header set Expires “Wed, 11 Jan 1984 05:00:00 GMT”
“`5. 使用nginx的配置文件来设置缓存控制信息:
“`
location ~* \.(jpg|jpeg|png|gif|ico)$ {
expires 0;
add_header Pragma “no-cache”;
add_header Cache-Control “no-store, no-cache, must-revalidate, post-check=0, pre-check=0”;
}
“`通过以上方法,可以有效地禁止浏览器缓存图片文件夹,确保每次加载图片时都能从服务器获取最新的图片内容。
2年前 -
在PHP中,你可以使用以下方法来确保图片没有缓存文件夹:
1. 设置响应头信息:在发送图片的页面上设置响应头信息,告诉浏览器不要缓存这个图片。可以在PHP文件的顶部使用header()函数来设置响应头信息,如下所示:
“`php
header(“Cache-Control: no-store, no-cache, must-revalidate, max-age=0”);
header(“Cache-Control: post-check=0, pre-check=0”, false);
header(“Pragma: no-cache”);
header(“Expires: Sat, 1 Jan 2000 00:00:00 GMT”);
“`这些响应头信息分别是:禁用缓存(no-cache),确保页面立即失效(no-store),不保存缓存副本(must-revalidate),0秒后过期(max-age=0),不进行预检查(pre-check=0),不进行后检查(post-check=0),不进行缓存(Pragma: no-cache),过期时间设为2000年1月1日(Expires: Sat, 1 Jan 2000 00:00:00 GMT)。
2. 在图片URL后添加随机参数:在图片URL后添加一个随机参数,这样每次请求图片时,URL都会不同,从而强制浏览器重新获取图片。例如:
“`html
2年前