PHP试题网_中国最大的免费网络PHP试题测试平台,PHP试卷调查,PHP试卷模板、PHP考试测验
公告: PHP试题网于2022.06.21变更为少儿编程学院


$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