2010
Jan
07
每次打开博客时都要从国外Gravatar官方网站下载头像,必然让博客的加载速度有所减慢,所以想把Gravatar头像缓存到本地。看了whisper童鞋的《全面启用gravatar头像缓存》,但那毕竟是WordPress的方法,在我这不是很合适,呵呵。又在网上找了一篇相关的文章《还在折腾:十行代码搞定Gravatar缓存》,里面很多变量有些奇怪,反正我是没搞清楚他那程序是怎么用的,但给了我很多启示,搞清楚了这篇文章中程序的工作原理,自己琢磨着重新写了一遍,呵呵,现在能用了。
function getGravatar($email, $size){
$image = md5(strtolower($email));
$localimage = $_SERVER['DOCUMENT_ROOT'].WEB_URL.'/Public/gravatar/'.$image.'.jpg';//本地头像的路径
$expiretime = 1296000;//15天时间
if(!is_file($localimage) || (time()-filemtime($localimage)>$expiretime)){//如果头像在本地不存在或者超过15天则从远程复制头像到本地
$remoteimage = 'http://www.gravatar.com/avatar.php?gravatar_id='.$image.'?s=32&d=identicon&r=G';//远程头像地址
copy($remoteimage, $localimage);//复制到本地
}
$img = WEB_URL.'/Public/gravatar/'.$image.'.jpg';//本地头像的相对路径
return "<img src='".$img."' width='".$size."' height='".$size."' />";//返回头像
}
在需要显示头像的地方调用如下代码:
echo getGravatar($email, $size);
搞定,就上面一点代码即可将Gravatar头像缓存到本地。
本站原创,转载请标明:来自追梦博客(http://www.wuleilei.com/)
相关文章
暂无相关文章!
看看他们的脚印
又梦见了,忘记真的很难。 (2月8日)
晚上和爸妈吃个饭。 (2月6日)
装修好累哟
(2月4日)
白
JankoAtWarpSpeed对...