注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

讀萬卷書,行萬里路

开心快乐的方式有很多种,寻找自己的快乐方式

 
 
 

日志

 
 

[转] PHP使用Gravatar API部分的翻译  

2011-07-09 11:29:36|  分类: 我的网络 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

原文转自   http://www.oschina.net/question/12_12684
http://www.oschina.net/img/logo.gif

  这个日志作为自己翻译练习用,以此慢慢来提高自己的英文水平。如果发现行文不通或者难以理解,那么建议你查看原文,万万不能在我的翻译上瞎琢磨,误入歧途。

Developer Resources
开发者资源

  Gravater的api不需要认证,它基于简单的HTTP GET请求。你可以在下面找到找到构建请求的URLS和不同接口选项和其他的信息。

Gravatar URLs

  学习如何生成需要的URLs去请求Gravatar的图片和资料信息。

  Gravatar所有的URLs都是构建在对哈希过的电子邮件地址的使用。图像和资料都可以通过一个哈希过的电子邮件地址访问。这是识别系统内部身份的主要认证方法。为了确保哈希坚固和精准,需要遵循下面的步骤来产生一个哈希。
1. 取出一个电子邮件地址开头和结尾的空白
2. 强制转换所有的字母为小写
3. 使用MD5哈希最终的字符串

 

 作为一个例子,让我以 "MyEmailAddress@example.com "开始(注意结尾那个空格,假设是我们用户的错误输入),如果我们直接md5哈希这个字符串,我们将得到下面的

1 echo md5( "MyEmailAddress@example.com " );
2 // "f9879d71855b5ff21e4963273a886bfc"

然后如果我们再次用相同的电子邮箱地址按照上面正确的步骤,你会看到我们将得到不同的结果。(还是在PHP里面)

1 $email = trim( "MyEmailAddress@example.com " ); // "MyEmailAddress@example.com"
2 $email = strtolower( $email ); // "myemailaddress@example.com"
3 echo md5( $email );
4 // "0bc83cb571cd1c50ba6f3e8a78ef1346"

我们也可以简单的写成一行

1 echo md5( strtolower( trim( "MyEmailAddress@example.com " ) ) );

一旦你生成了正确的哈希,你就可以请求图片或者资料了。

PHP Image Requests

用PHP来完成Gravatars 那是相当的简单。PHP本身提供了strtolower(), md5(), 和 urlencode() 这些函数,我们可以很容易的创建一个gravatar urls.


$email = "someone@somewhere.com";

$size = 40;

你可以构建你的gravatar用下面的php代码


$grav_url = "http://www.gravatar.com/avatar/" . md5( strtolower( trim( $email ) ) ) . "?d=" . urlencode( $default ) . "&s=" . $size;

一旦这个gravatar的url创建好了,你就可以把它放在任何你想放的地方了。


"" alt="" />

这个函数允许你快速和简单的插入一个gravatar到你的页面中。

/**  * Get either a Gravatar URL or complete image tag for a specified email address.  *  * @param string $email The email address  * @param string $s Size in pixels, defaults to 80px [ 1 - 512 ]  * @param string $d Default imageset to use [ 404 | mm | identicon | monsterid | wavatar ]  * @param string $r Maximum rating (inclusive) [ g | pg | r | x ]  * @param boole $img True to return a complete IMG tag False for just the URL  * @param array $atts Optional, additional key/value attributes to include in the IMG tag  * @return String containing either just a URL or a complete image tag  * @source <a href="http://gravatar.com/site/implement/images/php/" title="http://gravatar.com/site/implement/images/php/">http://gravatar.com/site/implement/images/php/</a>  */ function get_gravatar( $email, $s = 80, $d = 'mm', $r = 'g', $img = false, $atts = array() ) {     $url = 'http://www.gravatar.com/avatar/';     $url .= md5( strtolower( trim( $email ) ) );     $url .= "?s=$s&d=$d&r=$r";     if ( $img ) {         $url = '<img src="http://ttyjm.blog.163.com/blog/' . $url . '"';         foreach ( $atts as $key => $val )             $url .= ' ' . $key . '="' . $val . '"';         $url .= ' />';     }     return $url; }

Image Requests
基本的请求

Gravatar 图片 可以和普通图片一样使用IMG标签。为了得到一个用户指定的图片,那么你必须先计算出他们的电子邮箱的哈希值。
最简单图片请求URL是这样的形式
http://www.gravatar.com/avatar/HASH

HASH是用来被指定电子邮件地址的哈希值替换。比如下面
http://www.gravatar.com/avatar/205e460b479e2e5b48aec07710c08d50

当包裹上IMG标签是,这个URL将会这样。

如果你需要一个文件名的扩展,那么你同样可以添加一个.jpg(可选的)扩展给那个URL
http://www.gravatar.com/avatar/205e460b479e2e5b48aec07710c08d50.jpg

大小
默认图片大小展示为80像素x80像素(如果没有提供大小参数的话)。你可以请求一个指定的图片大小,他会动态的从Gravatar返回过来。只要使用了s= 或者size= 参数,然后传递一个像素值(因为图片都是正方形的)
http://www.gravatar.com/avatar/205e460b479e2e5b48aec07710c08d50?s=200
你可以请求的图片大小从1像素到512像素,但是需要注意的是,很多用户使用比较低的分辨率图片,所以请求大图片的时候会导致高像素低分辨率。





 

 

默认图片
如果一个电子邮箱的地址没有匹配到Gravatar图片会发生什么?默认的情况会是这样。

如果你更中意使用你自己的默认图片(可以是你的Logo或者什么搞笑的图片),那么你可以简单的做到,只需要提供URL一个参数d= 或者default = .这个URL必须是urlencode的来确保跨浏览器的兼容。比如
在Php中url-encode一个字符串。你可以这么做

1 echo urlencode( 'http://example.com/images/avatar.jpg' );

当你包含了一个默认的图片,而且没有图片关联到请求的电子邮件地址的哈希值,那么Gravatar会自动的提供一些图片。
为了更好了使用你的Gravatar图片,Gravatar本身有很多默认图片,你可以选择他们来作为你的默认图片。几乎所有的这些工作(获取电子邮件哈希值的请求和使用他产生一个图片)对电子邮件地址来说是唯一的。

 

使用这样选项,只需要传递一个下面的关键词,作为d= 的参数作为一饿个图片的请求。
404:如果没有与电子邮箱哈希值相关联,那么不加载图片。代替直接返回一个404响应。
mm:(神秘的家伙) 一个简单卡通的人物轮廓。(不会随着电子邮件哈希值变化)
indeticao: 一个基于电子邮件哈希值的抽象图案
monsterid: 产生一个不同颜色和面部的怪物
wavatar:产生不同的特征和杯具的脸。。。

      

 翻译来源:

http://en.gravatar.com/site/implement/

http://en.gravatar.com/site/implement/hash/

http://en.gravatar.com/site/implement/images/

http://en.gravatar.com/site/implement/images/php/

  评论这张
 
阅读(354)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017