前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >判断是否为Gravatar默认图

判断是否为Gravatar默认图

作者头像
Qicloud-W
发布2023-03-07 14:56:52
6210
发布2023-03-07 14:56:52
举报
文章被收录于专栏:七云's Blog

序言

为什么突然需要判断Gravatar的头像是否为默认图呢?

最近在写公共头像服务嘛,说实话,Gr的默认头是真的丑,而且好多人都没有注册Gr所以,看到评论区大片的下图

Gravatar 的概念首先是在国外的独立 WordPress 博客中兴起的,当你到任何一个支持 Gravatar的网站留言时,这个网站都就会根据你所提供的 Email 地址为你显示出匹配的头像。当然,这个头像,是需要你事先到 Gravatar 的网站注册并上传的,否则,在这个网站上,就只会显示成一个默认的头像。

当然,由于某些不可说的原因,国内服务是G了,它的全称叫做“Globally Recognized Avatar”,翻译过来叫做全球通用头像

说实话,真的不太美观,下面放出网上的方法以及我自己的方法

贴代码

网上大部分文章都啥通过判断gravatar.com/avatar/hash?d=404 取状态码后再取头像,进行缓存,一般这个流程下来要3s左右!效率不高,有点稀碎。

我之前呢看过一篇文章,也是用md5方式判断是否为gr的默认图,但是好久了,原文找不到了,上次逛使用MD5验证文件完整性提高数据安全 - 倾丞の小窝 的时候看到的这篇文章,反正curl都要走一次文件流,干嘛不直接走一遍镜像站判断是否为默认图呢?这样一来,从以上方法3s+,以下方法300ms左右吧,我感觉这个速度,我是可以接受了,嗯,由于cpavatar在备案,着急使用的话可以先使用我的镜像站,avatar.zets.cn 目前使用的百度云CDN 源站提供者打开就能看到,三个源站轮询,可靠性我自认为是目前我见过应该最稳定的了(公司注销了,这个域名估计也要拿去重新备案了emmm头大啊)到时候我直接套层壹盾,预估影响不大

话不多说,贴代码 需引入Curl类,这个类还蛮好用,懒得封装了 Curl https://github.com/php-mod/curl

代码语言:javascript
复制
function g_default($hash){
$Curl = new Curl();
$Curl->setOpt(CURLOPT_RETURNTRANSFER, TRUE); //获取的信息以文件流的形式返回,而不是直接输出。
$Curl->setOpt(CURLOPT_SSL_VERIFYPEER, FALSE); //跳过SSL证书检查
$default = ['9de8c28c6028de09355431e6435015a5','0ed67da44dcb41eef12e1f1acde56f6c']; //经测试,可能是旧的默认图,会存在第二个md5值
$md5_hash =  md5($Curl->get('http://avatar.zets.cn/avatar/'.$hash)->response);
return in_array($md5_hash, $default); //默认图md5值是否存在,是默认图则返回true 不是默认图则返回false 
}

版权属于:七云‘s Blog

本文链接:https://cloud.tencent.com/developer/article/2235222

版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-02-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 序言
  • 贴代码
相关产品与服务
命令行工具
腾讯云命令行工具 TCCLI 是管理腾讯云资源的统一工具。使用腾讯云命令行工具,您可以快速调用腾讯云 API 来管理您的腾讯云资源。此外,您还可以基于腾讯云的命令行工具来做自动化和脚本处理,以更多样的方式进行组合和重用。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档