你的位置:快乐忆站 \ 技术 \ 文章正文

属于emlog的gravatar头像缓存

看着wp的一个个都把头像给缓存了,心里痒痒,为啥emlog的不能缓存呢?之前小不点弄过缓存,我觉得没啥必要,现在有人反映说我博客加载很慢,那我就纳闷了,同样是博客,差距咋这么大呢?我得给emlog也添加这个功能,谁叫咱折腾的是emlog呢?

最开始想的是小不点的方法,后来一看,实在太复杂了,光一个php就20+K的大小,估计不能加快加载反而会更慢呢~然后就自己去寻找其他方法,找啊找啊,我最终还是找到了wp的缓存方法,来自wp大师:Willin Kan,原文链接:http://kan.willin.org/?p=1320,看了一下,方法还挺简单的,就只剩下移植了。

经过千辛万苦,我最终把它给搬过来了,不过可能有些差别,我也不知道会不会出问题,我自己当起了小白鼠,反正我自己博客已经用上了~说说具体方法吧:

打开module.php,在合适的位置加入如下代码:

//avatar缓存
function avatar($email,$size = '32',$default = '',$alt = 'gravatar'){
  $f = md5(strtolower($email));
  $w = BLOG_URL;
  $a = $w.'avatar/'.$f.'.jpg';
  $e = EMLOG_ROOT .'/avatar/'.$f.'.jpg';
  $t = 1209600; //设定14天
  if (empty($default)) $default = $w. '/avatar/default.jpg';
  if (!is_file($e) || (time() - filemtime($e)) > $t ){ //当头像不存在或者超过14天才更新
    $r = 'X';
    $g = sprintf( "http://%d.gravatar.com", ( hexdec( $f{0} ) % 2 ) ). '/avatar/'. $f. '?s=64&d='. $default. '&r='. $r;
     copy($g, $e); $a = $g; //新头像 copy 时, 取 gravatar 显示
  }
  if (filesize($e) < 500) copy($default, $e);
  echo "<img title='{$alt}' alt='{$alt}' src='{$a}' class='gravatar' height='{$size}' width='{$size}' />";
}

其中的一些参数你可以自行修改,比如size之类的。 然后在需要显示gravatar头像的地方调用如下代码:

<?php avatar( $value['mail'], $size = '32', $default = 'monsterid', $alt = 'gravatar' );?>

$default可以自行修改,如果你只在评论列表加头像,那么$value['mail']参数不用变,如果其他地方,请自行修改为正确的参数,否则无法正确显示头像!

最后,也是最重要的是在你博客的根目录新建一个文件夹,取名为avatar,linux的主机请设置权限为755或777,然后在此文件夹下放一个名为default.jpg的文件,默认头像就是这个!

好了,匆匆忙忙写的文章,有错误请指出,呵呵,悲剧,今天特忙!

« 上一篇

说两句吧:

*

*

正在回复: 取消

  1. 107#
    黎健雄
    黎健雄 Google Chrome 28.0.1500.71 Windows 7 2013-07-22 19:40 回复
    对了松哥,这个我想这样弄但是不知道怎么搞。
    例如我博客现在在A站点但是我想把头像放去B站点这样该怎么弄,就像你博客现在这样,
    小松
    小松 Mobile Google Chrome  iPhone iOS 6.1.2 2013-07-22 20:09 回复
    @黎健雄:b站点弄一个头像缓存的系统,然后a站生成b站的链接就行
  2. 106#
    黎健雄
    黎健雄 Google Chrome 22.0.1229.95 Windows XP 2013-05-26 22:37 回复
    这个5.1还管用吗?
    小松
    小松 Mobile Google Chrome  iPhone iOS 6.1.2 2013-05-27 07:16 回复
    @黎健雄:没测试过,应该都管用的
  3. 105#
    rocdk890
    rocdk890 Firefox 12.0 Windows XP 2012-05-22 10:44 回复
    头像缓存速度很快
    小松
    小松 Google Chrome 19.0.1084.46 Windows 7 x64 Edition 2012-05-22 11:01 回复
    @rocdk890:怎么说?
    rocdk890
    rocdk890 Firefox 12.0 Windows XP 2012-05-22 11:17 回复
    @小松:居然可以从预览一下就看到了
    小松
    小松 Google Chrome 19.0.1084.46 Windows 7 x64 Edition 2012-05-22 11:19 回复
    @rocdk890:这个是ajax请求返回的
  4. 104#
    lee
    lee 2011-01-01 18:33 回复
    我的博客缓存头像不更换http://www.sineea.com/blog/
  5. 103#
    伟大的母亲
    伟大的母亲 2010-10-26 12:41 回复
    伟大母亲到此一游,申请交换链接。
  6. 102#
    deardongdong
    deardongdong 2010-10-16 13:05 回复
    这个先收藏,等晚上再弄。
  7. 101#
    木瓜
    木瓜 2010-10-16 12:07 回复
    好像有问题,之前在gd空间很正常的,最近换了个空间,发现提示错误,连文章页都打不开,只好去掉了这个代码,估计是目录权限的问题
  8. 100#
    小松
    小松 2010-09-05 03:00 回复
    @huafiou:呵呵,那就没办法了~
  9. 99#
    huafiou
    huafiou 2010-09-05 01:58 回复
    还是看不明白??
  10. 98#
    小松
    小松 2010-08-24 21:18 回复
    @IM路人:是啊,造福了我们这些独立博客的博主~
1 2 3 4 5 6 ... »

随机日志:

推荐日志:

彩色标签:

sitemap