最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
PHP header()输出图片缓存
时间:2022-06-24 21:03:40 编辑:袖梨 来源:一聚教程网
很多开发中,我们试图使用header("Content-type: image/jpeg");来 输出图片,试图用一些php的图像处理技术,让输出图片更加智能和动感。但我们常常遇到新的问题,除非你规定不同的URL结构,并采用服务器技术将图片缓 存,否则很有可能这些输出图片会消耗大量的流量。怎么把它们缓存起来,下次用户访问的时候调用缓存呢?(前提是你的这个图片希望保持不变)
| 代码如下 | 复制代码 |
| // put this above any php image generation code: session_start(); header("Cache-Control: private, max-age=10800, pre-check=10800"); header("Pragma: private"); header("Expires: " . date(DATE_RFC822,strtotime(" 2 day"))); |
|
在header("Content-type: image/jpeg");上方添加上面这段代码,它将规定当前页面缓存的时间(两天),并在下一次访问中使用这个缓存时间节点。
接下来判断是否已经有缓存,如果有,就使用缓存。
情况一:如果浏览器对当前页面已经有缓存,那么就直接使用它。
| 代码如下 | 复制代码 |
| // the browser will send a $_SERVER['HTTP_IF_MODIFIED_SINCE'] if it has a cached copy if(isset($_SERVER['HTTP_IF_MODIFIED_SINCE'])){ // if the browser has a cached version of this image, send 304 header('Last-Modified: '.$_SERVER['HTTP_IF_MODIFIED_SINCE'],true,304); exit; } |
|
情况二:浏览器缓存了当前页,虽然我们更新了某些图片信息,但来源图片本身没有变化,而且我们希望使用之前的缓存,那么也使用缓存。
| 代码如下 | 复制代码 |
|
$img = "some_image.png"; |
|
当然,有些特殊的情况我们还必须考虑,但上面的代码基本上能够带领我们的思路。对了,记得把它们都放在header("Content-type: image/jpeg")的上面。
接着我们来看个例子吧
| 代码如下 | 复制代码 |
|
//调整图片大小 |
|
相关文章
- 差差漫画免费版下载-差差漫画2026最新版获取 02-04
- 小小影院电视剧在线观看:海量热门剧集高清不卡顿 02-04
- picacg哔咔漫画免费下载-picacg最新安装包一键获取 02-04
- picacg哔咔官网版-picacg哔咔官网版2.2 02-04
- 修修漫画-在线看漫画入口-修修漫画-网页版观看入口 02-04
- 免费韩漫在线观看入口:无遮挡全集漫画下拉式畅读体验 02-04