gpt4 book ai didi

php - 为 imagejpeg/imagepng 函数创建的图像指定缓存验证器

转载 作者:可可西里 更新时间:2023-10-31 23:11:32 25 4
gpt4 key购买 nike

据我们所知,我们可以通过将以下行添加到 .htaccess 文件来为图像指定缓存验证器:

<IfModule mod_expires.c>
ExpiresActive On
ExpiresDefault "access plus 1 year"
</IfModule>

..和..

<IfModule mod_headers.c>
<FilesMatch "\.(bmp|css|flv|gif|ico|jpg|jpeg|js|pdf|png|svg|swf|tif|tiff)$">
Header set Last-Modified "Mon, 31 Aug 2009 00:00:00 GMT"
</FilesMatch>
</IfModule>

但是,它对真正的 JPG 或 PNG 文件有效。但是,问题是,如何为使用 PHP 代码和 imagejpeg/imagepng 函数动态构建的图像指定缓存验证器? (以上代码对他们无效)

P.S:我尝试使用 .htaccess 文件模拟由 PHP 创建的图像的 URL,就像真实图像一样(例如:http://example.com/1.jpg,生成由 PHP 文件生成,不是真正的 .jpg 图像),但仍收到缓存验证器警告。

最佳答案

您可以在 imagejpeg/imagepng 函数之前添加 PHP 代码:

function TestModifiedSince($PageTimeStamp, $TextDatePage) {
if (isset($_SERVER["HTTP_CACHE_CONTROL"])) {return;}
if (!isset($_SERVER["HTTP_IF_MODIFIED_SINCE"])) {return;}
$TestTime=strtotime($_SERVER["HTTP_IF_MODIFIED_SINCE"]);
if (($TestTime - $PageTimeStamp) >= 0) {
header('Last-Modified: '. $TextDatePage, true, 304);
exit();
}
}

# hh mm ss MM DD YYYY
$DateUpdateBaseDef = mktime(00, 00, 00, 08, 31, 2009);
$TimeHeadUpdate = gmdate('D, d M Y H:i:s', $DateUpdateBaseDef).' GMT';
TestModifiedSince($DateUpdateBaseDef, $TimeHeadUpdate);

关于php - 为 imagejpeg/imagepng 函数创建的图像指定缓存验证器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43158768/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com