在许多地方我们都需要用到头像,头像就像你在互联网上除了昵称以外的第二个标识~比如我的滑稽! 😆
什么是 Gravatar
Gravatar 是一个 Globally Recognized Avatar(全球公认的头像),你只需要上传一次头像就创建了你的个人资料,以后当你在支持 Gravatar 的网站上参与互动时,只要提供你与这个头像关联的Email邮箱地址,就能够显示出你的Gravatar头像,一个邮箱地址对应一张头像图片
谁正在使用 Gravatar
程序员常去的 GitHub,以及WordPress 和 Typecho 等博客程序也都使用 Gravatar 作为评论系统的头像
通过邮箱获取地址
我有想法将十年之约官网重构,哈哈,前几天他们在群里说能不能不收集用户头像地址? 用了这么久的WordPress和Typecho,评论的时候都是使用邮箱来获取的头像,直接集成一下不就行了
/**
* Get either a Gravatar URL or complete image tag for a specified email address.
*/
function getGravatar( $email, $s = 96, $d = 'mp', $r = 'g', $img = false, $atts = array() ) {
$url = 'https://www.gravatar.com/avatar/';
$url .= md5( strtolower( trim( $email ) ) );
$url .= "?s=$s&d=$d&r=$r";
if ( $img ) {
$url = '<img src="' . $url . '"';
foreach ( $atts as $key => $val )
$url .= ' ' . $key . '="' . $val . '"';
$url .= ' />';
}
return $url;
}
直接调用输出的是图片地址,我们要用的话就用img标签输出一下
$email = '[email protected]';
$imgUrl = getGravatar($email);
echo '<img src="'.$imgUrl.'"></img>';
图片的地址并不唯一,还有什么secure.gravatar.com
的也可以生成
十年之约的成员有些可能使用的是QQ邮箱,没有Gravatar头像,所以加了一个判断如果是QQ邮箱就获取QQ头像
//获取Gravatar头像 QQ邮箱取用qq头像
function getGravatar($email, $s = 96, $d = 'mp', $r = 'g', $img = false, $atts = array())
{
preg_match_all('/((\d)*)@qq.com/', $email, $vai);
if (empty($vai['1']['0'])) {
$url = 'https://www.gravatar.com/avatar/';
$url .= md5(strtolower(trim($email)));
$url .= "?s=$s&d=$d&r=$r";
if ($img) {
$url = '<img src="' . $url . '"';
foreach ($atts as $key => $val)
$url .= ' ' . $key . '="' . $val . '"';
$url .= ' />';
}
}else{
$url = 'https://q2.qlogo.cn/headimg_dl?dst_uin='.$vai['1']['0'].'&spec=100';
}
return $url;
}
哇, 原来建成博客才是第一步
测试………
谢谢,拿走了。但是使用方法写的不是很清楚。小白估计不太会用。
@雨致 emmm,我有伪代码啊,传个邮箱就可以了 😥
@雨致 试一下12341234
了解了,马上自己试试看
哇哦,沈大佬牛逼!成为十年之约的维护组!
@橘子书 不不不 我是菜狗
我有点懵,$img初始为false,又没传值进来,函数部分也没有设定,if判断的依据是啥,不还是false么?
@西枫里博客 哈哈,脑子一时短路,sorry,sorry
@西枫里博客 直接调用输出的是图片地址 😆 我写了 大佬
这个好像很多主题都是这么干的,我的主题还结合了本地缓存和随机头像
@boke112导航 缓存防止Gravatar网站挂掉,随机为了那些没注册过的 哈哈
@boke112导航 我现在也是这么干。不过我多了一键切换。
😛 有些人用QQ邮箱的耶
@小学长 QQ邮箱注册过Gravatar的话也能获取啊,不过我当时注册用QQ邮箱收不到邮件。如果获取不得给他一个默认的随机头像也可以