gravatar被墙(为什么这东西都会被墙)

2015-04-01

于是找了找解决方式,貌似用反代是个很好的办法,但是又发现反代用了把自己的ip也给墙了就不好了,于是试着把头像缓存到本地,利用下面的代码折腾了下,理论上应该可行。


public static function cacheAvatar($email)
        {
                //avatar头像缓存到文件
                $time=60*60*24*30;//过期时间
                $path=dirname(dirname(dirname(dirname(__File__)))).'/public/avatar/';
                $email=md5(strtolower(trim($email)));
                $file=$path.$email.'.jpg';
                if(!file_exists($file)||(time()-filemtime($file))>$time){
                        $name=$path.$email.'.jpg';
                        $url='http://www.gravatar.com/avatar/'.$email.'?s=40';
                        $result=file_put_contents($name,file_get_contents($url));
                }
                $url='/avatar/'.$email.'.jpg';
                return $url;
        }

还有点小问题就是,我不清楚avatar获得的头像是啥类型的文件,目前我就一律保存为jpg,目测还没问题。


85 查看