排行榜 统计
  • 建站日期:2021-05-20
  • 文章总数:144 篇
  • 评论总数:694 条
  • 分类总数:4 个
  • 最后更新:5月5日

typecho通过qq邮箱显示k值qq头像,且不暴露QQ号

本文阅读 1 分钟
首页 精品教程 正文
本文最后更新于2021年07月16日,已超过316天没有更新。如果文章内容或图片资源失效,请留言反馈,我会及时处理,谢谢!

实现原理是获取json数据进行分割得出k值再进行重组,比较简单。

第一种实现

function Authorimg($email)
{
$a='cdn.v2ex.com/gravatar';//gravatar头像源
$b=str_replace('@qq.com','',$email);//替换qq邮箱
if(stristr($email,'@qq.com')&&is_numeric($b)&&strlen($b)<11&&strlen($b)>4)    {
    $nk = 'http://ptlogin2.qq.com/getface?&imgtype=1&uin='.$b;//qq头像api
    $q = file_get_contents($nk);//读入文件
    $q = json_encode($nk);//编码json
    $k = explode("&k=",$q)[1];//分割出k值
    echo 'https://q.qlogo.cn/g?b=qq&k='.$k.'&s=100';//重组
}else{
    $email= md5($email);
    echo 'https://'.$a.'/'.$email.'?';
}
}

第一种方法实际使用貌似会影响效率,实测加载比较慢,于是就研究了下,得出第二种方法,获取HTTP请求所发送的标头的数组,不用读入整个文件不会影响效率。

好的实现方法

function Authorimg($email)
{
$a='cdn.v2ex.com/gravatar';//gravatar头像源
$b=str_replace('@qq.com','',$email);
if(stristr($email,'@qq.com')&&is_numeric($b)&&strlen($b)<11&&strlen($b)>4)    {
    $nk = 'https://s.p.qq.com/pub/get_face?img_type=3&uin='.$b;
    $c = get_headers($nk, true);
    $d = $c['Location'];
    $q = json_encode($d);
    $k = explode("&k=",$q)[1];
    echo 'https://q.qlogo.cn/g?b=qq&k='.$k.'&s=100';
}else{
    $email= md5($email);
    echo 'https://'.$a.'/'.$email.'?';
}
}

使用方法:

<?php Authorimg($comments->mail); ?>

效果图:

blockchain

本文来自投稿,不代表本站立场,如若转载,请注明出处:https://www.xinr.vip/archives/53.html
typecho获取当前作者的全部评论
« 上一篇 06-09
php设置cookies立即生效,实现网页多语言切换!
下一篇 » 06-09
广告

发表评论

V注册会员 L评论等级
R1 条回复
  1. 嘟嘟VLv.2 说道:
    2021-12-10     Android /    Chrome

    来啦

没有更多评论了

作者信息

广告

动态快讯

热门文章

最多点赞

16赞, 阅读:1.4k
15赞, 阅读:3k
13赞, 阅读:1.2k
12赞, 阅读:3.4k
广告

标签TAG

热评文章