相关疑难解决方法(0)

在PHP脚本中处理If-modified-since标头

我有一个PHP脚本,使用?img =参数调用.

该参数的值是图像的(urlencoded)URL.

如果该图像已存储在我的服务器上,我的脚本会检查.

如果没有 - 它下载它.之后,它可选择调整图像大小并将其发送到STDOUT,即返回到请求浏览器,前面加上Content-TypeLast-modified标头:

Connection:close
Content-Type:image/jpeg
Date:Fri, 01 Jun 2012 08:28:30 GMT
Last-Modified:Fri, 01 Jun 2012 08:02:44 GMT
Server:Apache/2.2.15 (CentOS)
Transfer-Encoding:chunked
X-Powered-By:PHP/5.3.3
Run Code Online (Sandbox Code Playgroud)

这需要解决一些跨域问题,并且在一年多的时间内对我有用:

截图

但是,我想添加处理传入的If-Modified-since标头的功能 - 发送Not Modified 304响应.

我的问题是:

1)在Apache中运行时,甚至可以在PHP中运行吗?

2)如何处理(即解析和生成)PHP中最好的日期?

奖金问题)如何为调整大小的图像添加Content-Length标头?

我的代码如下(我省略了CURL下载部分):

<?php

define('CACHE_DIR', '/var/www/cached_avatars/');

$img    = urldecode($_GET['img']);
$cached = CACHE_DIR . md5($img);

# omitted downloading part for brevity

$readfh = fopen($cached, 'rb');
if ($readfh) {
        flock($readfh, LOCK_SH);

        $size = getimagesize($cached);
        $w    = $size[0]; …
Run Code Online (Sandbox Code Playgroud)

php if-modified-since

12
推荐指数
2
解决办法
2万
查看次数

标签 统计

if-modified-since ×1

php ×1