很多做博客网站的朋友,会经常遇到一个问题,Gravatar头像被墙,不显示了。于是乎又改链接,有改为CN的,有改为DUOSHUO的,也有改为EN的,但是这些方法都是治标不治本。今天易捷博客教大家怎么把头像缓存在本地空间,已解决头像被墙的问题。
1、在content文件夹里面创建一个avatars的文件夹
2、将以下代码写入你的module.php里面。
<?php
//Gravatar头像缓存
//易捷博客网 www.vxia.net
function cache_gravatar($email, $s = 40, $d = 'mm', $r = 'g'){
$f = md5($email);
$a = BLOG_URL.'content/avatars/'.$f.'.jpg';
$e = EMLOG_ROOT.'/content/avatars/'.$f.'.jpg';
$t = 1296000;
if(empty($email)){
$a = TEMPLATE_URL.'images/avatar-default.png';
}
if(!is_file($e) || (time() - filemtime($e)) > $t ){
$g = sprintf("http://secure.gravatar.com",(hexdec($f{0})%2)).'/avatar/'.$f."?s=40&d=mm&r=g";copy($g,$e); $a=$g;
}
if(filesize($e) < 500){
copy($d,$e);
}
return $a;
}
?>
3、把module.php里面的调用头像改为cache_gravatar即可。



