数码资讯
PHP使用头()输出图片缓存实例
本文演示PHP使用页眉()输出图片缓存的方式: 当我们生成验证码时,我们需要直接输入图片,通常我们使用标题(内容类型:图像)。这里我们将简要介绍。 在许多开发中,我们尝试使用页眉()内容类型:图像输出,并尝试使用一些PHP图像处理技术,使输出图像更加智能和动态,但我们经常遇到新的问题。除非指定不同的
选购提示
关注价格、性能、续航、售后和真实使用场景,理性比较后再下单。
本文演示PHP使用页眉()输出图片缓存的方式:
当我们生成验证码时,我们需要直接输入图片,通常我们使用标题(内容类型:图像)。这里我们将简要介绍。
在许多开发中,我们尝试使用页眉()内容类型:图像输出,并尝试使用一些PHP图像处理技术,使输出图像更加智能和动态,但我们经常遇到新的问题。除非指定不同的URL结构并使用服务器技术缓存图片,否则这些输出图片将消耗大量的流量。您如何在下一个用户访问时缓存它们并调用缓存(如果您希望这张图片保持不变)
将代码复制如下:将其置于任何PHP图像生成代码之上:
session_start();
标题(缓存控制:私有,最大年龄= 10800,预检查= 10800 );
标题(杂注:私人);
页眉()。日期(date_rfc822,strtotime(2天))));
在标题(内容类型:图像 )中,添加上面的代码,它将指定当前页面缓存时间(两天),并在下一次访问时使用缓存时间节点。
接下来,确定是否已经有缓存,如果存在,则使用缓存。
案例1:如果浏览器已经缓存在当前页面上,可以直接使用它。
复制代码如下:浏览器会发送一个_server美元{ 'http_if_modified_since} /如果它有一个缓存副本
如果(isset($ _server { 'http_if_modified_since ' })){
如果浏览器有此图像的缓存版本,请发送304
头('last-modified:'。_server { } 'http_if_modified_since美元,真的,304);
出口;
}
场景二:浏览器缓存了当前页面。虽然我们更新了一些图像信息,源图片本身并没有改变,我们希望以前使用缓存,所以我们也使用缓存。
复制代码代码如下:$ img =some_image。png;
如果(isset($ _server { 'http_if_modified_since ' })(strtotime($ _server { 'http_if_modified_since ' })=个($ IMG))){
发送文件的最后一个mod时间
(gmdate头'last-modified:'(想,D M Y H:我:'($,个IMG))。'时间',真的,304);
出口;
}
当然,也有一些特殊的情况需要我们考虑,但是上面的代码基本上可以引导我们的思路。
那么让我们看一个例子。
复制代码代码如下:< PHP
调整图片大小
*图片比例缩放的原则:
* 1,原始图的大小是否小于目标的大小,如果直接使用原始图的宽度
* 2,如果原始图的大小大于目标的大小,则比较原始地图的宽度和高度。
* 3,如:宽度>高度,宽度=目标宽度,高=目标宽度的比率*
* 4,如:高>宽,高=目标高,宽=高比例的目标*原始宽度
**
$;
max_width = 200美元;
max_height = 200美元;
$大小= getimagesize($图像); / /得到图像的大小
宽度= $ { 0 };
高= $大小{ 1 };
x_ratio美元=美元/美元max_width宽度;
y_ratio美元=美元/美元max_height高度;
如果(($宽度max_width美元)(美元高度≤max_height美元))
{
tn_width美元= $宽度;
tn_height美元= $高度;
}
Elseif((($ x_ratio * $高度)< max_height美元)
{
tn_height美元=细胞($ x_ratio * $高度);
tn_width = max_width美元美元;
}
其他的
{
tn_width美元=细胞($ y_ratio * $宽度);
tn_height = max_height美元美元;
}
SRC = imagecreatefromjpeg美元($图像);
美元($ tn_width DST =新建一个真彩色图像,tn_height美元); / /新建一个真彩色图像
imagecopyresampled($ DST,SRC美元,0, 0, 0,0,tn_width美元,tn_height美元美元美元,宽度,高度); / /重采样拷贝部分图像并调整大小
头('content-type:图像/ JPEG);
imagejpeg($ DST,null,100);
销毁一图像($ SRC);
销毁一图像($ DST);
>
希望本文能对大家的PHP程序设计有所帮助。
当我们生成验证码时,我们需要直接输入图片,通常我们使用标题(内容类型:图像)。这里我们将简要介绍。
在许多开发中,我们尝试使用页眉()内容类型:图像输出,并尝试使用一些PHP图像处理技术,使输出图像更加智能和动态,但我们经常遇到新的问题。除非指定不同的URL结构并使用服务器技术缓存图片,否则这些输出图片将消耗大量的流量。您如何在下一个用户访问时缓存它们并调用缓存(如果您希望这张图片保持不变)
将代码复制如下:将其置于任何PHP图像生成代码之上:
session_start();
标题(缓存控制:私有,最大年龄= 10800,预检查= 10800 );
标题(杂注:私人);
页眉()。日期(date_rfc822,strtotime(2天))));
在标题(内容类型:图像 )中,添加上面的代码,它将指定当前页面缓存时间(两天),并在下一次访问时使用缓存时间节点。
接下来,确定是否已经有缓存,如果存在,则使用缓存。
案例1:如果浏览器已经缓存在当前页面上,可以直接使用它。
复制代码如下:浏览器会发送一个_server美元{ 'http_if_modified_since} /如果它有一个缓存副本
如果(isset($ _server { 'http_if_modified_since ' })){
如果浏览器有此图像的缓存版本,请发送304
头('last-modified:'。_server { } 'http_if_modified_since美元,真的,304);
出口;
}
场景二:浏览器缓存了当前页面。虽然我们更新了一些图像信息,源图片本身并没有改变,我们希望以前使用缓存,所以我们也使用缓存。
复制代码代码如下:$ img =some_image。png;
如果(isset($ _server { 'http_if_modified_since ' })(strtotime($ _server { 'http_if_modified_since ' })=个($ IMG))){
发送文件的最后一个mod时间
(gmdate头'last-modified:'(想,D M Y H:我:'($,个IMG))。'时间',真的,304);
出口;
}
当然,也有一些特殊的情况需要我们考虑,但是上面的代码基本上可以引导我们的思路。
那么让我们看一个例子。
复制代码代码如下:< PHP
调整图片大小
*图片比例缩放的原则:
* 1,原始图的大小是否小于目标的大小,如果直接使用原始图的宽度
* 2,如果原始图的大小大于目标的大小,则比较原始地图的宽度和高度。
* 3,如:宽度>高度,宽度=目标宽度,高=目标宽度的比率*
* 4,如:高>宽,高=目标高,宽=高比例的目标*原始宽度
**
$;
max_width = 200美元;
max_height = 200美元;
$大小= getimagesize($图像); / /得到图像的大小
宽度= $ { 0 };
高= $大小{ 1 };
x_ratio美元=美元/美元max_width宽度;
y_ratio美元=美元/美元max_height高度;
如果(($宽度max_width美元)(美元高度≤max_height美元))
{
tn_width美元= $宽度;
tn_height美元= $高度;
}
Elseif((($ x_ratio * $高度)< max_height美元)
{
tn_height美元=细胞($ x_ratio * $高度);
tn_width = max_width美元美元;
}
其他的
{
tn_width美元=细胞($ y_ratio * $宽度);
tn_height = max_height美元美元;
}
SRC = imagecreatefromjpeg美元($图像);
美元($ tn_width DST =新建一个真彩色图像,tn_height美元); / /新建一个真彩色图像
imagecopyresampled($ DST,SRC美元,0, 0, 0,0,tn_width美元,tn_height美元美元美元,宽度,高度); / /重采样拷贝部分图像并调整大小
头('content-type:图像/ JPEG);
imagejpeg($ DST,null,100);
销毁一图像($ SRC);
销毁一图像($ DST);
>
希望本文能对大家的PHP程序设计有所帮助。
声明:本文内容用于数码产品信息整理与选购参考,具体价格、库存、售后政策以官方渠道和电商页面实时信息为准。