使用 php 有一种简单的方法,一个简单的脚本或网址操作来构建与电子邮件对应的重力图像图片的网址?
Ex. http://gravatar.com/avatars/avatar.php?email=myemail@myserver.com
这会返回一个jpeg或png图片。
如果没有类似示例的简单方法,您知道解决与电子邮件对应的gravatar网址的最简单方法是什么?感谢
答案 0 :(得分:8)
您可以在其实施网站上找到包含PHP代码的示例脚本:http://en.gravatar.com/site/implement/php
答案 1 :(得分:8)
使用此:
$userMail = whatever_to_get_the_email;
$imageWidth = '150'; //The image size
$imgUrl = 'http://www.gravatar.com/avatar/'.md5($userMail).'fs='.$imageWidth;
答案 2 :(得分:4)
根脚本位于http://www.gravatar.com/avatar/ URL的下一部分是所请求用户的小写电子邮件地址的十六进制MD5 hash,其中所有空白都被修剪。您可以添加适当的文件扩展名,但它是可选的。
答案 3 :(得分:1)
虽然@ dipi-evil的解决方案工作正常,但我没有用它获得更大的图像。以下是我如何使其正常工作。
$userMail = 'johndoe@example';
$imageWidth = '600'; //The image size
$imgUrl = 'https://secure.gravatar.com/avatar/'.md5($userMail).'?size='.$imageWidth;
答案 4 :(得分:1)
您只能看到Gravatar的简单功能,可以:
返回该电子邮件的图像。
<?php
class GravatarHelper
{
/**
* validate_gravatar
*
* Check if the email has any gravatar image or not
*
* @param string $email Email of the User
* @return boolean true, if there is an image. false otherwise
*/
public static function validate_gravatar($email) {
$hash = md5($email);
$uri = 'http://www.gravatar.com/avatar/' . $hash . '?d=404';
$headers = @get_headers($uri);
if (!preg_match("|200|", $headers[0])) {
$has_valid_avatar = FALSE;
} else {
$has_valid_avatar = TRUE;
}
return $has_valid_avatar;
}
/**
* gravatar_image
*
* Get the Gravatar Image From An Email address
*
* @param string $email User Email
* @param integer $size size of image
* @param string $d type of image if not gravatar image
* @return string gravatar image URL
*/
public static function gravatar_image($email, $size=0, $d="") {
$hash = md5($email);
$image_url = 'http://www.gravatar.com/avatar/' . $hash. '?s='.$size.'&d='.$d;
return $image_url;
}
}
您可以使用以下代码:
if (GravatarHelper::validate_gravatar($email)) {
echo GravatarHelper::gravatar_image($email, 200, "identicon");
}
答案 5 :(得分:0)
您可以使用此代码在Gravatar.com上获取电子邮件的头像,或者如果找不到该电子邮件的头像,则生成默认头像。
您只需要传递电子邮件作为参数,然后在项目中的任何地方调用此函数即可。
public function get_avatar($email){
$url = 'https://www.gravatar.com/avatar/'; // The gravatar's API url
$url .= md5( strtolower( trim( $email ) ) ); // Hash the user's email
$url .='.png?s=300'; // Get a custom image size
//Extract the image if is set on Gravatar
if ( isset($img) ) {
foreach ( isset($atts) as $key => $val )
$url .= ' ' . $key . '="' . $val . '"';
}
return $url; // Return the avatar's url or the default avatar if no image found.
}