Emlog解决Gravatar头像无法显示的方法

时间::2014-11-16 栏目: 技术分享 作者: ↗℡ 浮华 青春 评论: 5 点击: 2925 次

Gravatar头像无法显示,全部为叉叉,今天发现的,估计是被墙后造成的,只能修改其他的Gravatar头像缓存地址。

目前来说有两种解决方法一是修改为多说(http://gravatar.duoshuo.com/)的缓存,也算是一个备胎。而且多说的速度相对于其他的来说速度更快;二是用官方的中文站地址(http://cn.gravatar.com/),这两种办法都可以解决的。回味依旧将在此将缓存功能与改多说缓存地址相结合的介绍一下给大家:

首先,修改模板文件的module.php 在其中适当位置加入如下代码


<?php
//头像缓存模块
function get_avatar($mail,$size = '40')
{
        $email_md5=md5(strtolower($mail));//通过MD5加密邮箱
        $cache_path=EMLOG_ROOT."/content/templates/hcms/cache"; //缓存文件夹路径,请将hcms改成你的模板,并自行创建目录,设置777
        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)//过期或图片不存在
        {
            $hash = md5($mail);
            $new_avatar ="http://gravatar.duoshuo.com/avatar/$hash?s=$s&d=$d&r=$g";
            copy($new_avatar,$avatar_abs_url);
        }
        return $avatar_url;
        }
?>


其中,若不需从多说获取头像缓存而是从gravatar获取,则将
$hash = md5($mail);
$new_avatar ="http://gravatar.duoshuo.com/avatar/$hash?s=$s&d=$d&r=$g";
两句改为以下即可
$new_avatar = getGravatar($mail);
最后,将所有getGravatar函数改为get_avatar函数即可
回味依旧的头像不显示问题已解决,你的呢?

声明: 本文由(↗℡ 浮华 青春)原创编译,转载请保留链接: Emlog解决Gravatar头像无法显示的方法

(选择后可查看结果)阅读本文后,您的心情是:
 
恶心
愤怒
强赞
感动
路过
无聊
雷囧
关注
et_highlighter51

Emlog解决Gravatar头像无法显示的方法:目前有 5 条留言

  1. # 板凳
    看看:

    看看是不是有效

    2016-10-01 17:47 [回复]
  1. # 沙发
    清风:

    路过。。。

    2015-07-08 01:23 [回复]

发表评论

------====== 本站公告 ======------
博主大学蜕变期间,更新量应该骤减,表示十分可怕。2016,一起加油!

北京时间

    敢于浪费哪怕一个钟头时间的人,说明他还不懂得珍惜时间的全部价值。

    ——达尔文