我想在电子邮件中表示动态图片。例如,使用给定的URL
<img src="http://myserver.com/index.php/user_key/thispagestate.jpg" />
我想根据服务器内的逻辑提供不同的图像。只有2到4个静态图像用于表示任何给定请求的结果。
我想到的两个选项是:
看到每个请求将导致有限数量的图像之一,我认为重定向可能会节省我们的资源,并在用户端也使用缓存。每个请求的结果都会根据用户和时间而改变,也许使用重定向会对SEO或垃圾邮件过滤产生一些影响吗?
您对最佳方法的看法将不胜感激
答案 0 :(得分: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将相同,但内容可能会更改。这可能会使缓存系统混乱。
实际上反过来,因为同一个文件现在会有不同的内容。您希望他们每次都重新验证内容,以确保显示正确的图像。看到每个请求都会产生 我有限数量的图像之一 以为重定向可能会节省 我们的资源和利用 缓存在用户端。