我有一个PHP脚本,使用?img =参数调用.
该参数的值是图像的(urlencoded)URL.
如果该图像已存储在我的服务器上,我的脚本会检查.
如果没有 - 它下载它.之后,它可选择调整图像大小并将其发送到STDOUT,即返回到请求浏览器,前面加上Content-Type和Last-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)