>php教程 >php手册 >获取gravatar图像

获取gravatar图像

WBOY
WBOY원래의
2016-06-07 11:41:331566검색

wordpress的头像系统一直用的是全球通用头像gravatar。我想在自己的项目中用这个头像系统。翻了一遍wordpress之后简单的修改得到了自己想要的gravatar函数 get_avatar_src。这函数返回所要求的头像地址。部分功能还没有实现, 可以根据自己的需求再改一改....
/**<br>  * 返回用户的avatar头像地址<br>  *<br>  * @param unknown $id_or_email<br>  *            用户ID或邮箱地址<br>  * @param string $size<br>  *            大小<br>  * @param string $default<br>  *            默认头像<br>  * @param string $alt            <br>  * @return string<br>  */<br> function get_avatar_src($id_or_email, $size = '96', $default = '') {<br>     if (! is_numeric ( $size ))<br>         $size = '96';<br>     <br>     $email = '';<br>     if (is_numeric ( $id_or_email )) {<br>         // id传入的时候处理<br>     } else {<br>         // 否则传给$email<br>         $email = $id_or_email;<br>     }<br>     <br>     // 默认头像<br>     if (empty ( $default )) {<br>         $avatar_default = ''; // get_option('avatar_default'); //获取默认设置<br>         if (empty ( $avatar_default )) // 如果没有设置,则定义默认<br>             $default = 'mystery';<br>         else<br>             $default = $avatar_default;<br>     }<br>     <br>     if (! empty ( $email )) // 如果不为空, 生成hash代码<br>         $email_hash = md5 ( strtolower ( trim ( $email ) ) );<br>         <br>     if (! empty ( $email )) { // 如果邮箱不为空,则使用邮箱地址生成链接<br>         $host = sprintf ( "http://%d.gravatar.com", (hexdec ( $email_hash ) % 2) );<br>     } else // 否则使用默认地址<br>         $host = 'http://0.gravatar.com';<br>     <br>     $host = str_replace ( array (<br>             "www.gravatar.com",<br>             "0.gravatar.com",<br>             "1.gravatar.com",<br>             "2.gravatar.com" <br>     ), "gravatar.duoshuo.com", $host );<br>     <br>     <br>     if ('mystery' == $default)<br>         $default = "$host/avatar/ad516503a11cd5ca435acc9bb6523536?s={$size}"; // ad516503a11cd5ca435acc9bb6523536 == md5('unknown@gravatar.com')<br>     elseif ('blank' == $default)<br>         // 如果为空(blank), 则获取空白图像<br>         $default = $email ? 'blank' : ''; // includes_url( 'images/blank.gif' );<br>     elseif (! empty ( $email ) && 'gravatar_default' == $default)<br>         // 如果邮箱已有, 清空默认头像<br>         $default = '';<br>     elseif ('gravatar_default' == $default)<br>         $default = "$host/avatar/?s={$size}";<br>     elseif (empty ( $email ))<br>         $default = "$host/avatar/?d=$default&s={$size}";<br>     <br>     if (! empty ( $email )) {<br>         <br>         <br>         $out = "$host/avatar/";<br>         $out .= $email_hash;<br>         $out .= '?s=' . $size;<br>         $out .= '&d=' . urlencode ( $default );<br>         <br>         $out = str_replace ( '&', '&', strip_whitespace ( $out ) );<br>     } else {<br>         $out = $default;<br>     }<br>     <br>     return $out;<br> }

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

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.