$imgkey = md5($_SERVER['REQUEST_URI']);
if(empty(I('get.r'))){//加上r参数表示点击图片随机生成文字到图片上
$imgdata = F($imgkey);
if(empty($imgdata)){
ob_start();//启用输出缓存,暂时将要输出的内容缓存起来
}else{
header("Content-type: image/png");
echo $imgdata;
exit;
}
}
//中间:你们的合成图片代码
//最后:输出图片
header("Content-type: image/png");
imagepng($newImg);
imagedestroy($newImg);
if(empty(I('get.r'))){
$imgdata = ob_get_contents();//获取刚才获取的缓存
F($imgkey, $imgdata);
ob_end_flush();
ob_end_clean();//清空缓存
}
exit;
//注:仅仅对tupian.php?type=image&username=%E6%9D%B0%E5%85%8B%E5%93%9F%E8%A5%BF&school=%E6%B8%85%E5%8D%8E%E5%A4%A7%E5%A4%A7%E5%AD%A6这种固定的url缓存,如果全部生成随机图片,会刷爆硬盘,当然最好的办法是放在memcache里面,设定缓存时间就行,不过有些场景不允许。一个图片超过1M大小,只能缓存到硬盘,内存类缓存超过500K大小,性能可能会下降了。
作者:OK兄 浏览次数:92