TypechoJoeTheme

虾米皮皮乐工作室

导航
统计
登录 / 注册

Typecho获取QQ头像,隐藏QQ号

2020-09-06
/
10 评论
/
14 阅读
/
正在检测是否收录...
09/06

spzac主题免费版默认就支持获取QQ头像,而且很久之前“狗花”说这个头像获取泄露他Q了,我一直懒癌发作没有修正这个问题,前两天修好了,分享出来。

原理

原来的QQ头像获取链接是

https://s.p.qq.com/pub/get_face?img_type=3&uin=扣扣号

最近发现可以通过这个链接来获取QQ头像

https://q1.qlogo.cn/g?b=qq&k=k值&s=100

k值怎么获取呢?

打开下面的地址

http://ptlogin2.qq.com/getface?&imgtype=1&uin=扣扣号

你会发现格式

Header({"扣扣号":"https://thirdqq.qlogo.cn/g?b=sdk&k=k值&s=后面的可以忽略})

通过substr获取k值就行

代码

把下面的代码放到functions.php就可以根据QQ号获取不带QQ号的头像链接。

function getQQAvatar($qqNum) {
    $str = @file_get_contents("http://ptlogin2.qq.com/getface?&imgtype=1&uin=$qqNum");
    $start = strpos($str, '&k=') + 3;
    $end = strpos($str, '&s=');
    $k = substr($str, $start , $end - $start);
    return 'https://q1.qlogo.cn/g?b=qq&k='.$k.'&s=100';
}

速度改进

然而这两台天我发现获取这个K值非常慢,整体拖慢网页速度,所以决定把头像缓存开起来。

思路

把头像文件存成md5(qq号).jpg
每次请求头像时先判断文件存在不
如果不存在,下载下来。
如果存在,判断是否超过一定时间了(30天),如果是刷新缓存。
这样的话只有吃螃蟹的人会影响浏览体验(PS:可以在别人写QQ邮箱的时候就ajax请求缓存起来,这样就完全没有割裂感)。

完整代码

这里直接给出完整代码吧,把下面的代码放到functions.php里就可以调用了。

此处内容 回复 可见

调用方式

把下面的代码放到需要调用的地方

<?php gravatarUrl(邮箱地址); ?>

如果需要修改头像大小(QQ头像不支持)

<?php gravatarUrl(邮箱地址, 'size=64'); ?>

如果需要更换 Gravatar CDN 地址(别忘了/结尾)

<?php gravatarUrl(邮箱地址, 'prefix=https://gravatar.loli.net/avatar/'); ?>
nullcontent目录主题function链接hidejpg代码array文件头像strurlqqnumstart
朗读
赞 · 0
版权属于:

虾米皮皮乐工作室

本文链接:

https://xiamp.net/archives/typecho-get-qq-avatar-hide-qq-number.html(转载时请注明本文出处及文章链接)

评论 (10)
  1. 木灵鱼儿 作者
    Windows 10 · FireFox

    测试一下回复可见

    2020-09-10 回复
  2. 小李 作者
    Windows 10 · Google Chrome

    :grin::grin::grin:回复可见

    2020-10-29 回复
  3. 荒野孤灯 作者
    Windows 10 · Google Chrome

    回复可见 :cool:

    2020-11-06 回复
  4. 梦仙 作者
    Windows 7 · Google Chrome

    测试一下回复可见:smile:

    2020-11-07 回复
  5. dyt5AAUI 作者
    Windows 10 · Google Chrome

    测试一下回复可见

    2020-11-16 回复
  6. 沐白 作者
    iPhone · Safari

    :???:666测试

    2020-11-20 回复
  7. 夜熬我 作者
    Linux · Safari

    学习学习学习

    2021-01-16 回复
  8. 呆窝云 作者
    Windows 10 · Google Chrome

    测试一下回复可见

    2021-01-21 回复
  9. eking 作者
    Windows 7 · Google Chrome

    测试一下

    2021-02-17 回复
  10. afa 作者
    Windows 10 · Google Chrome

    看看看

    2021-03-01 回复