1

我想在电子邮件中表示动态图像。例如使用给定的 url

<img src="http://myserver.com/index.php/user_key/thispagestate.jpg" />

我想根据服务器中的逻辑提供不同的图像。只有 2 到 4 个静态图像用于表示任何给定请求的结果。

我想到的两个选项是:

  1. 直接使用 imagecreatefromjpeg提供图像
  2. 或者生成 302 重定向

看到每个请求都会产生有限数量的图像之一,我认为重定向可能会节省我们端的资源并利用用户端的缓存。每个请求的结果都会根据用户和时间而变化,也许使用重定向会对 SEO 或垃圾邮件过滤产生一些影响?

您对最佳方法的意见将不胜感激

4

1 回答 1

2

我想到的两个选项是:

  1. 直接使用
  2. 也许 imagecreatefromjpeg 或者生成 302 重定向

在这种情况下,我会选择 #1,但由于它是静态图像,您可以简单地使用:

header("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1
header("Expires: Sat, 26 Jul 1997 05:00:00 GMT"); // Date in the past
header('Content-Type: image/jpg'); // or image/png, etc.
echo file_get_contents($image_path); // where $image_path is the path to the image
exit;

反而。如果您尝试在静态图像上添加文本等操作,则只需要使用 GD 函数。

请注意,在此缓存中,我将其设置为缓存过期,因为 URL 将相同,但内容可能会更改。这可能会混淆缓存系统。

看到每个请求都会产生有限数量的图像之一,我认为重定向可能会节省我们端的资源并利用用户端的缓存。

实际上相反,因为同一个文件现在将具有不同的内容。您会希望他们每次都重新验证内容,以确保显示正确的图像。

于 2011-05-13T17:45:38.963 回答