【问题标题】:How to return URL or image from Gravatar to be used externally?如何从 Gravatar 返回 URL 或图像以供外部使用?
【发布时间】:2015-12-18 10:19:43
【问题描述】:

我想在我发送的时事通讯中包含 Gravatar 个人资料图片。我知道我不能只使用 URL 作为参数将 URL 添加到 Gravatar 服务,而是需要先进行一些哈希处理。

我确实有一个启用 PHP 的网站,我可以使用它来将电子邮件“翻译”为 MD5 哈希值,并可能返回完整的图像 URL 以在时事通讯中使用,但我不知道如何。

如果我这样做,那么我得到的只是在网页上打印 URL:

$email = "someone@somewhere.com";
$default = "http://www.mywebsite.com/homestar.jpg";
$size = 40;
$grav_url = "http://www.gravatar.com/avatar/" . md5( strtolower( trim( $email ) ) ) . "?d=" . urlencode( $default ) . "&s=" . $size;
echo $grav_url;

我怎样才能“返回”完整的 URL,以便我在时事通讯中可以写如下内容:

<img src="http://www.mywebsite.com/my-php-script.php?email=someemail@domain.com">`

(顺便说一句,我当然会在时事通讯中动态插入这样的电子邮件:

http://www.mywebsite.dk/my-php-script.php?=[DYNAMICFIELD_EMAIL]` )

也许是某种重定向?

或者如果这不起作用,我可以让脚本返回实际图像吗?

【问题讨论】:

  • 什么不适用于您的示例?你写它的方式应该适用于&lt;img&gt;
  • @Veve:是的,我不会在 PHP 脚本中使用它,而是“在外部”使用它——在时事通讯中。因此,与其他问题相比,需要“下一步” - 我已经对如何构建 URL 进行了排序,但需要关于如何在 PHP 之外使用它的帮助。所以不要重复! :-)

标签: php gravatar


【解决方案1】:

您的代码需要返回实际图像,因为它在imgsrc 属性中使用。你能有一个[DYNAMICFIELD_EMAIL_HASHED] - 会让事情变得更容易。

否则你可以查看fpassthru。有了它,您可以直接下载和输出 gravatar 图像,您的时事通讯代码就可以工作。但我不确定这是否违反 Gravater 的使用条款。此外,您还必须进行一些错误处理,可能是缓存、更改标头等。

【讨论】:

  • 谢谢!是的,像 [DYNAMICFIELD_EMAIL_HASHED] 这样的东西会很棒 - 但因为这个列表是高度动态的(部分原因是我在每次发送之前找不到时间来生成和上传所有散列的电子邮件)这是不可能的。谢谢,fpassthru 看起来很复杂——我会试着找到一些例子,让像我这样的业余爱好者可以理解。 :)
猜你喜欢
  • 2020-04-24
  • 2017-04-22
  • 1970-01-01
  • 1970-01-01
  • 2018-04-20
  • 1970-01-01
  • 1970-01-01
  • 2019-10-29
  • 2014-06-08
相关资源
最近更新 更多