gravatar接口php,获取gravatar图像

wordpress的头像系统一直用的是全球通用头像gravatar。我想在自己的项目中用这个头像系统。翻了一遍wordpress之后简单的修改得到了自己想要的gravatar函数 get_avatar_src。这函数返回所要求的头像地址。部分功能还没有实现, 可以根据自己的需求再改一改....

/**

* 返回用户的avatar头像地址

*

* @param unknown $id_or_email

* 用户ID或邮箱地址

* @param string $size

* 大小

* @param string $default

* 默认头像

* @param string $alt

* @return string

*/

function get_avatar_src($id_or_email, $size = '96', $default = '') {

if (! is_numeric ( $size ))

$size = '96';

$email = '';

if (is_numeric ( $id_or_email )) {

// id传入的时候处理

} else {

// 否则传给$email

$email = $id_or_email;

}

// 默认头像

if (empty ( $default )) {

$avatar_default = ''; // get_option('avatar_default'); //获取默认设置

if (empty ( $avatar_default )) // 如果没有设置,则定义默认

$default = 'mystery';

else

$default = $avatar_default;

}

if (! empty ( $email )) // 如果不为空, 生成hash代码

$email_hash = md5 ( strtolower ( trim ( $email ) ) );

if (! empty ( $email )) { // 如果邮箱不为空,则使用邮箱地址生成链接

$host = sprintf ( "http://%d.gravatar.com", (hexdec ( $email_hash ) % 2) );

} else // 否则使用默认地址

$host = 'http://0.gravatar.com';

$host = str_replace ( array (

"www.gravatar.com",

"0.gravatar.com",

"1.gravatar.com",

"2.gravatar.com"

), "gravatar.duoshuo.com", $host );

if ('mystery' == $default)

$default = "$host/avatar/ad516503a11cd5ca435acc9bb6523536?s={$size}"; // ad516503a11cd5ca435acc9bb6523536 == md5('unknown@gravatar.com')

elseif ('blank' == $default)

// 如果为空(blank), 则获取空白图像

$default = $email ? 'blank' : ''; // includes_url( 'images/blank.gif' );

elseif (! empty ( $email ) && 'gravatar_default' == $default)

// 如果邮箱已有, 清空默认头像

$default = '';

elseif ('gravatar_default' == $default)

$default = "$host/avatar/?s={$size}";

elseif (empty ( $email ))

$default = "$host/avatar/?d=$default&s={$size}";

if (! empty ( $email )) {

$out = "$host/avatar/";

$out .= $email_hash;

$out .= '?s=' . $size;

$out .= '&d=' . urlencode ( $default );

$out = str_replace ( '&', '&', strip_whitespace ( $out ) );

} else {

$out = $default;

}

return $out;

}

AD:真正免费,域名+虚机+企业邮箱=0元

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值