很多做博客网站的朋友,会经常遇到一个问题,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即可。