在许多地方我们都需要用到头像,头像就像你在互联网上除了昵称以外的第二个标识~比如我的滑稽! ?
Gravatar 是一个 Globally Recognized Avatar(全球公认的头像),你只需要上传一次头像就创建了你的个人资料,以后当你在支持 Gravatar 的网站上参与互动时,只要提供你与这个头像关联的Email邮箱地址,就能够显示出你的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 = '52o@qq52o.cn';
$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;
}