Gravatar被墙后解决头像不能正常显示的五种方法(持续更新中。。。)
时间:2014-11-30 06:52 作者:admin 分类: 技术文章
Gravatar被墙后,很多博客的头像显示都不正常了,网上也有很多的方法,但是不全面,今天Mrxn帮你搜集汇总,发布在Mrxn's Blog 。
方法一:
打开include/lib/function.base.php 找到如下代码:
function getGravatar($email, $s = 40, $d = 'mm', $g = 'g') {
$hash = md5($email);
$avatar = "http://www.gravatar.com/avatar/$hash?s=$s&d=$d&r=$g";
return $avatar;
}
修改为
$avatar = "https://secure.gravatar.com/avatar/$hash?s=$s&d=$d&r=$g";
方法二:
同样打开include/lib/function.base.php
将$avatar = "http://www.gravatar.com/avatar/$hash?s=$s&d=$d&r=$g";
修改为:$avatar = "http://gravatar.duoshuo.com/avatar/$hash?s=$s&d=$d&r=$g";
方法三:
也是打开include/lib/function.base.php
将/**
* 获取Gravatar头像
* http://en.gravatar.com/site/implement/images/
* @param $email
* @param $s size
* @param $d default avatar
* @param $g
*/
里面的http://en.gravatar.com/site/implement/images/
修改为:http://cn.gravatar.com/site/implement/images/
方法四:缓存头像,本地缓存。
<?php function get_avatar($mail,$size = '40') { $email_md5=md5(strtolower($mail));//通过MD5加密邮箱 $cache_path=EMLOG_ROOT."/content/templates/uu_hcms/cache"; //缓存文件夹路径 if(!file_exists($cache_path)) { mkdir($cache_path,0700); } $avatar_url=TEMPLATE_URL."cache/".$email_md5.'.jpg'; //头像相对路径 $avatar_abs_url=$cache_path."/".$email_md5.'.jpg'; //头像绝对路径 $cache_time=24*3600*7; //缓存时间为7天 if (empty($default)) $default = $cache_path. '/default.jpg'; if(!file_exists($avatar_abs_url) || (time()-filemtime($avatar_abs_url)) > $cache_time)//过期或图片不存在 { $new_avatar = getGravatar($mail); copy($new_avatar,$avatar_abs_url); } return $avatar_url; } ?>
插入module.php中,修改自12年某emer的代码。缓存7天可以自己修改,缓存呢可以加快页面是显示速度,但也不能那么及时更新头像了。看自己需要吧。对路由服务器来说,加载留言板的速度无疑快了不少。
使用方法:在module.php的最新评论 显示评论 显示子评论里面将getGravatar替换成get_avatar 。OK 完工。
方法五:自定义默认头像,个性DIY
详情,请查看我早期的文章:让emlog的留言板和评论使用本地头像,加速访问,提升美观
更多方法正在搜集研究中,尽请期待!请关注我的博客:https://mrxn.net