使用 PHP 缓存生成的图像
Posted
技术标签:
【中文标题】使用 PHP 缓存生成的图像【英文标题】:Caching generated images with PHP 【发布时间】:2010-06-14 15:27:19 【问题描述】:我正在尝试缓存已生成的图像。您可以通过 resize.php?width=x&height=y 访问文件来创建图像。 如果该宽度和高度的图像不存在,我使用 imagemagick 来创建它。但是,如果它确实存在,它就会提供给访问者。
!file_exists($name) 检查工作正常,因此在不需要时不会进行处理。但是,图像仍然需要一段时间才能加载。
是我的 readfile 方法不正确还是我设置的标题不正确?
if (!file_exists($name))
//image processing here
header("Content-Type: image/png");
header("Expires: Sat, 25 Jul 2020 10:00:00 GMT");
readfile($name);
谢谢。
【问题讨论】:
【参考方案1】:如果我必须这样做,如果图像不存在,我会对其进行处理,并将其保存在某个 Web 可访问的文件夹中。如果文件存在,只需重定向到它 header('位置:http://www.yoursite.com/path/to/existing/file.png')
【讨论】:
啊哈,呵呵!谢谢您的帮助!我知道 php 脚本不会自动缓存,所以 readfile 每次都只是读取图像。以上是关于使用 PHP 缓存生成的图像的主要内容,如果未能解决你的问题,请参考以下文章
PHP 缩略图图像生成器缓存:如何在 PHP 中正确设置 If-Last-Modified/Max-Age/Last-Modified HEADERS?