[Typecho]更换头像源及显示QQ显示头像

您所在的位置:网站首页 如何把gif设置为qq头像 [Typecho]更换头像源及显示QQ显示头像

[Typecho]更换头像源及显示QQ显示头像

2024-07-05 12:51| 来源: 网络整理| 查看: 265

经过访问cn.gravatar.com多次未果,于是了解到国内它的镜像站,可以更快速的获取头像(但我还是没有官网账号),以及通过QQ号得到QQ头像[1]。虽然这篇文章给出了一位开发者的github链接[2],但是经过查看源码,并未发现实现QQ头像获取的功能,并且因为很久没有维护,code里支持的某一个镜像也失效,因此我便稍微修改一下,不要在意效率。

镜像源

首先是修改失效的镜像,将第52行code修改为

'https://cdn.v2ex.com/gravatar/' => '国内镜像 ( https://cdn.v2ex.com/gravatar/ )'),

其中56行之后的那一堆默认头像的地址可以选择性修改一下。

QQ头像

然后参考了一篇文章[3],得到了从qq号获取头像地址的php代码。因为上面这个插件涉及到返回头像地址的功能,所以直接在这个插件里动刀。那么就通过检测邮箱中的QQ号来得到头像吧。

首先在gravatarUrl函数的起始位置添加一个判断,是否邮箱为qq号形式的邮箱[4]:

// 检测是否是数字类型的QQ邮箱 preg_match('/^\d{4,11}@qq\.com$/i', $mail)

如果是的话,会返回真,否则为假。 接下来当返回为真的时候令函数直接返回QQ头像地址:

if (preg_match('/^\d{4,11}@qq\.com$/i', $mail)) { $qq = substr($mail, 0, -7); $geturl = 'http://ptlogin2.qq.com/getface?&imgtype=1&uin='.$qq; $qquser = file_get_contents($geturl); $str1 = explode('&k=', $qquser); $str2 = explode('&s=', $str1[1]); $k = $str2[0]; $qqimg = 'https://q1.qlogo.cn/g?b=qq&k='.$k.'&s=100'; return $qqimg; }

以上是功能的大致实现,具体修改请参照提供下载的插件源码。因为对PHP语言不了解,所以并不确定这种方法是否最佳,修改后的插件仅供参考:GitHub

限制

需要用户邮箱设置为由QQ号组成的的QQ邮箱账号。

参考链接: https://handsl.cn/338.htmlhttps://github.com/LT21/GravatarServerhttps://qqdie.com/archives/get-qq-avatar-no-qq-number.htmlhttps://www.n-1.cn/32.html  


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3