显示标签为“头像”的博文。显示所有博文
显示标签为“头像”的博文。显示所有博文

2010年8月20日星期五

Gravatar头像缓存

继留言加入Gravatar头像功能之后,在需要Gravatar头像的地方就会向Gravatar服务器发送请求并要求返回,这无疑会延缓网页的加载时间。通常的办法是把Gravatar头像缓存到本地服务器上,毕竟调用本地方便快捷。

这里我们只需要copy函数,把Gravatar头像copy到本机即可。一般的免费空间的copy会被关闭,可以通过下面的代码测试一下:



<?php 
echo copy("index.php","index123456.php");
?>




如果返回结果是1,并且在根目录下发现名为"index123456.php"的文件,说明copy是可以用的。

把上面的代码延伸成如下的代码(核心也就是copy函数,没有使用WP函数以及其他额外的函数,所以是通用的代码):



<?php
function avatar($email,$size = '32',$default = '',$alt = 'gravatar'){
$f = md5(strtolower($email));
$a = 'avatar/'.$f.'.jpg';
$e = 'avatar/'.$f.'.jpg';
$t = 1209600; //设定14天
if (empty($default)) $default = '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}' />";
}
// -- END ----------------------------------------
//测试一下
$value="123@example.com";//注册的邮件地址

//调用代码
avatar( $value, $size = '40', $default = 'monsterid', $alt = 'gravatar');
?>




这样的话就把Gravatar头像copy到根目录下名为avatar的文件夹中了。

参考资料:快乐忆站 地址:http://thin.tk/AB

2010年8月19日星期四

网站评论留言加入Gravatar头像功能

在浏览别人的网站以及Blog总会发现其成员列表或者评论头像的异彩纷呈,尤其是WordPress搭建的网站更是如此,这其实是通过Gravatar来实现的。Gravatar,全称Globally Recognized Avatar(全球通用头像)。如果在Gravatar的服务器上放置了你自己的头像,那么当你到任何一个支持 Gravatar的网站留言时,这个网站都就会根据你所提供的Email地址为你显示出匹配的头像。目前WordPress已经自带了Gravatar头像功能,大部分的Wordpress使用者都会开通这个Gravatar头像功能。所以当你在这些网站留言的时候,都会显示你的Gravatar头像。

也就是说这些头像是放在Gravatar上的,它与电子邮件地址关联,当你提供了邮件地址也就同时给出了对应的头像了。简单说一下Gravatar头像实现的原理(其实自己注册一下,原理也就很明白了)。用电子邮件地址:Email Address: 123@example.com注册,系统会采用MD5来加密产生Email Hash: 81c793bc7cc255679d90c4518784b1f,然后通过http://www.gravatar.com/avatar/81c793bc7cc255679d90c4518784b1f?s=40来访问头像。

我们可以用下面的代码测试一下:

$email="123@example.com";//注册的邮箱地址
echo 'Gravatar Icon';
?>

如果注册成功的话,就会显示你所上传的图片了。?s=40为显示图片的边长参数。

具体的网站实施就是把上面的代码稍作修改,替换掉原有的显示头像的"<img />"即可。

PS:寻找在网站上实现Gravatar头像的方法或代码,一窝蜂的都是WordPress的插件或者代码实现,看来现在WordPress真的很是流行。