获取QQ头像外链的加密URL

2023-11-17 18:24:49 浏览数 (2)

代码语言:javascript复制
<?php
/*
 * @Author: Qicloud
 * @Date: 2020-12-05 22:03:33
 * @Title: API
 * @Project: 获取QQ头像外链的加密URL
 * @QQ: 66547997
 * @当浑浊变成一种常态,清白就是一种罪。
 */
class Api
{
    public static function get_curl($url,$header = 0, $ua = 0, $nobaody = 0)
    {
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, $url);
        curl_setopt($ch, CURLOPT_TIMEOUT, 60);
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
        curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
        $clwl[] = "Accept:*/*";
        $clwl[] = "Accept-Encoding:gzip,deflate,sdch";
        $clwl[] = "Accept-Language:zh-CN,zh;q=0.8";
        curl_setopt($ch, CURLOPT_HTTPHEADER, $clwl);
        if ($header) {
            curl_setopt($ch, CURLOPT_HEADER, TRUE);
        }
        if ($ua) {
            curl_setopt($ch, CURLOPT_USERAGENT, $ua);
        } else {
            curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Linux; U; Android 4.0.4; es-mx; HTC_One_X Build/IMM76D) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0');
        }
        if ($nobaody) {
            curl_setopt($ch, CURLOPT_NOBODY, 1);
            //主要头部
            curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); //跟随重定向
        }
        curl_setopt($ch, CURLOPT_ENCODING, "gzip");
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        $ret = curl_exec($ch);
        curl_close($ch);
        return $ret;
    }
    /**
     * @param Json信息输出
     * @arr:需要转换的数组
     */
    public static function json($arr = array(), $code = JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE)
    {
        header("Content-Type:text/json");
        header("Access-Control-Allow-Origin: *");
        exit(json_encode($arr, $code));
    }
    /**
     * 获取GET POST表单数据
     */
    public static function GetData($key = "")
    {
        if (empty($key)) {
            return $_REQUEST;
        }
        if (isset($_REQUEST[$key])) {
            return $_REQUEST[$key];
        } else {
            return null;
        }
    }
}
$qquin = Api::GetData('qq'); //qq参数
if (!empty($qquin)) {
    $size = Api::GetData('size');
    if ($size == 640) {
        $add = Api::get_curl('https://ptlogin2.qq.com/getface?uin=' . $qquin . '&imgtype=3');
        $preg = '#https://.*s=100#'; //使用正则匹配图像URL
        preg_match($preg, $add, $match);
        //var_dump($match);
        $imgurl = $match['0'];
        $deimg = str_replace("s=100", "s=640", $imgurl); //替换图片尺寸
        $qrand = 'q' . rand(1, 4);
        $img = str_replace("thirdqq", $qrand, "$deimg"); //替换域名前缀
        Api::json(['code' => 200, 'msg' => 'success', 'imgurl' => $img]);
    } else {
        $add = Api::get_curl('https://ptlogin2.qq.com/getface?uin=' . $qquin . '&imgtype=3');
        $preg = '#https://.*s=100#'; //使用正则匹配图像URL
        preg_match($preg, $add, $match);
        //var_dump($match);
        $imgurl = $match['0'];
        $qrand = 'q' . rand(1, 4);
        $img = str_replace("thirdqq", $qrand, $imgurl); //替换域名前缀
        Api::json(['code' => 200, 'msg' => 'success', 'imgurl' => $img]);
    }
} else {
    Api::json(['code' => -1, 'msg' => 'errors', 'imgurl' => null]);
}

0 人点赞