人生若只如初见 - api接口 https://blog.ilingku.com/tag/api%E6%8E%A5%E5%8F%A3/ php代码实现随机图片浏览(无需301跳转,实现隐藏真实地址) https://blog.ilingku.com/archives/43/ 2026-04-15T01:55:00+08:00 一直看同一个背景会腻的。从网上搜索到不少的php随机图片代码,感觉都不合我心意,chatgpt也问了半天,没什么好的参考。最终,结合 远梦老哥 的php随机图片代码,弄出来这套识别设备输出不同文件夹图片,自适应设备图片。教程下载源码,根目录解压挑选合适的图片上传至images文件夹<img src="域名/index.php">接口演示 {alert type="info"}请勿盗用本站接口;因本站服务器配置较低,所以关闭外链!{/alert}源码下载{cloud title="夸克网盘" type="quark" url="https://pan.quark.cn/s/4f0582e2bf4c" password="sBuf"/} 2026年最新官方可用获取QQ昵称和加密QQ头像url的PHP代码(源码包含3条新接口) https://blog.ilingku.com/archives/8/ 2026-04-07T20:48:00+08:00 {alert type="success"}2026免登录 只需要一个QQ号就能获取QQ加密头像和QQ昵称 获取QQ用户信息API!今天分享几个php获取QQ头像及昵称的php案例源码{/alert} {lamp/}第一条接口输出json格式{ "code": 200, "qq": "1938257", "data": { "name": "〆º阿ღ凯◌ོ◌ꦿ࿐", "mail": "1938257@qq.com", "avatar": "http://thirdqq.qlogo.cn/g?b=sdk&k=nCDraCMdutCKOGwEJWLcwA&kti=Zk_HlQAAAAE&s=640", "qzone": "https://user.qzone.qq.com/1938257", "imgdata": [ "http://thirdqq.qlogo.cn/g?b=sdk&k=nCDraCMdutCKOGwEJWLcwA&kti=Zk_HlQAAAAE&s=40", "http://thirdqq.qlogo.cn/g?b=sdk&k=nCDraCMdutCKOGwEJWLcwA&kti=Zk_HlQAAAAE&s=100", "http://thirdqq.qlogo.cn/g?b=sdk&k=nCDraCMdutCKOGwEJWLcwA&kti=Zk_HlQAAAAE&s=140", "http://thirdqq.qlogo.cn/g?b=sdk&k=nCDraCMdutCKOGwEJWLcwA&kti=Zk_HlQAAAAE&s=640" ] }, "time": "2026-04-07 20:40:44" }PHP代码{hide}<?php error_reporting(0); /** * @author 领酷阿凯 * @link https://www.ilingku.com * @msg QQ昵称加密头像获取 */ header("Access-Control-Allow-Origin: *"); header('Content-type: application/json;charset=utf-8'); $qq = isset($_GET['qq']) ? $_GET['qq'] : '1938257'; // 获取用户信息 $userInfo = get_qqname($qq); // 构建返回的结果数组 $result = array( 'code' => 200, 'qq' => $qq, 'data' => $userInfo, 'time' => date('Y-m-d H:i:s') // 添加当前时间戳 ); // 输出 JSON 格式的结果 echo json_encode($result, JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES); function get_qqname($lkqq){ $postdata = '{"comm":{"cv":4747474,"ct":24,"format":"json","inCharset":"utf-8","outCharset":"utf-8","notice":0,"platform":"yqq.json","needNewCode":1,"uin":123456},"req_2":{"module":"userInfo.BaseUserInfoServer","method":"get_user_baseinfo_v2","param":{"vec_uin":["'.$lkqq.'"]}}}'; $headers = array( "Referer: https://y.qq.com/portal/player.html", "User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.84 Safari/537.36", "Cookie:acctype=qc;uin=".$lkqq.";" ); //签名 $PART_1_INDEXES = [23, 14, 6, 36, 16, 40, 7, 19]; $PART_2_INDEXES = [16, 1, 32, 12, 19, 27, 8, 5]; $SCRAMBLE_VALUES = [89, 39, 179, 150, 218, 82, 58, 252, 177, 52, 186, 123, 120, 64, 242, 133, 143, 161, 121, 179]; $sha1 = strtoupper(hash('sha1', $postdata)); $result = ''; foreach ($PART_1_INDEXES as $idx) { $result .= substr($sha1, $idx, 1); } $part1 = $result; $results = ''; foreach ($PART_2_INDEXES as $idx) { $results .= substr($sha1, $idx, 1); } $part2 = $results; $part3 = []; for ($i = 0; $i < 20; $i++) { $hexByte = substr($sha1, $i * 2, 2); $part3[] = $SCRAMBLE_VALUES[$i] ^ hexdec($hexByte); } $b64Part = base64_encode(call_user_func_array('pack', array_merge(['C*'], $part3))); $b64Part = preg_replace('/[\/+=]/', '', $b64Part); $v3_sign = 'zzc' . strtolower($part1 . $b64Part . $part2); $lk_api = "https://u.y.qq.com/cgi-bin/musics.fcg?sign=".$v3_sign; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $lk_api); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $postdata); curl_setopt($ch, CURLOPT_ENCODING, 'gzip,deflate'); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); $response = curl_exec($ch); curl_close($ch); $lkdata = json_decode($response,true); $qqname = $lkdata['req_2']['data']['map_userinfo'][$lkqq]['nick']; $portraiturl = $lkdata['req_2']['data']['map_userinfo'][$lkqq]['headurl']; $parts = parse_url($portraiturl); parse_str($parts['query'], $query); unset($query['t']); $query['s'] = 640; $newUrl = $parts['scheme'] . '://' . $parts['host'] . $parts['path'] . '?' . http_build_query($query); $sizes = [40, 100, 140, 640]; $portraitarr = []; foreach ($sizes as $s) { $query['s'] = $s; $portraitarr[] = $parts['scheme'] . '://' . $parts['host'] . $parts['path'] . '?' . http_build_query($query); } // 返回的用户信息 $userInfo = array( 'name' => isset($qqname) ? $qqname : '获取失败', 'mail' => $lkqq . '@qq.com', 'avatar' => $newUrl, 'qzone' => 'https://user.qzone.qq.com/' . $lkqq, 'imgdata' => $portraitarr ); return $userInfo; }{/hide}{lamp/}第二条接口输出json格式{ "code": 200, "qq": "1938257", "data": { "name": "〆º阿ღ凯◌ོ◌ꦿ࿐", "mail": "1938257@qq.com", "pic": "https://thirdqq.qlogo.cn/g?b=sdk&k=nCDraCMdutCKOGwEJWLcwA&kti=Zk_HlQAAAAE&s=640&t=1706997185", "qzone": "https://user.qzone.qq.com/1938257", "imgurl": "https://q1.qlogo.cn/g?b=qq&nk=1938257&s=40", "imgurl1": "https://q1.qlogo.cn/g?b=qq&nk=1938257&s=100", "imgurl2": "https://q1.qlogo.cn/g?b=qq&nk=1938257&s=140", "imgurl3": "https://q1.qlogo.cn/g?b=qq&nk=1938257&s=640" }, "time": "2026-04-07 21:07:38" }PHP代码{hide}<?php error_reporting(0); /** * @author 领酷阿凯 * @link https://www.ilingku.com * @msg QQ昵称加密头像获取 */ header("Access-Control-Allow-Origin: *"); header('Content-type: application/json;charset=utf-8'); $qq = isset($_GET['qq']) ? $_GET['qq'] : '1938257'; // 获取用户信息 $userInfo = get_qq_name($qq); // 构建返回的结果数组 $result = array( 'code' => 200, 'qq' => $qq, 'data' => $userInfo, 'time' => date('Y-m-d H:i:s') // 添加当前时间戳 ); // 输出 JSON 格式的结果 echo json_encode($result, JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES); function get_qq_name($lkqq){ $lkurl = "https://i2.y.qq.com/n3/cm/pages/vip/myvip/v12/index.html"; $headers = array( "Referer: https://y.qq.com/portal/player.html", "User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.84 Safari/537.36", "Cookie:acctype=qc;uin=".$lkqq.";" ); // 初始化 cURL $ch = curl_init(); // 设置 cURL 选项 curl_setopt($ch, CURLOPT_URL, $lkurl); curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); // 执行请求并获取响应 $response = curl_exec($ch); // 关闭 cURL 资源 curl_close($ch); // 使用正则表达式匹配所有的转义字符,并替换为空字符串 $lkhtml = preg_replace('/\\\/', '', $response); preg_match('/window.__ssrFirstPageData__="(.*)"<\/script>/is',$lkhtml,$lktext); $lkjson = preg_replace('/{"int10":(.*?)}/i','',$lktext[1]); $lkdata = json_decode($lkjson,true); $lkpicarr = explode('?',$lkdata['userInfo']['headurl']); $portrait = 'https://thirdqq.qlogo.cn/g?'.$lkpicarr[1];//QQ头像 $nickname = $lkdata['userInfo']['nick'];//QQ昵称 // 返回的用户信息 $userInfo = array( 'name' => isset($nickname) ? $nickname : '', 'mail' => $lkqq . '@qq.com', 'pic' => isset($portrait) ? str_replace('s=140', 's=640', $portrait) : '', 'qzone' => 'https://user.qzone.qq.com/' . $lkqq, 'imgurl' => 'https://q1.qlogo.cn/g?b=qq&nk=' . $lkqq . '&s=40', 'imgurl1' => 'https://q1.qlogo.cn/g?b=qq&nk=' . $lkqq . '&s=100', 'imgurl2' => 'https://q1.qlogo.cn/g?b=qq&nk=' . $lkqq . '&s=140', 'imgurl3' => 'https://q1.qlogo.cn/g?b=qq&nk=' . $lkqq . '&s=640' ); return $userInfo; }{/hide}{lamp/}第三条接口输出json格式{ "code": 200, "qq": "1938257", "data": { "name": "〆º阿ღ凯◌ོ◌ꦿ࿐", "mail": "1938257@qq.com", "qzone": "https://user.qzone.qq.com/1938257", "imgurl": "https://q1.qlogo.cn/g?b=qq&nk=1938257&s=40", "imgurl1": "https://q1.qlogo.cn/g?b=qq&nk=1938257&s=100", "imgurl2": "https://q1.qlogo.cn/g?b=qq&nk=1938257&s=140", "imgurl3": "https://q1.qlogo.cn/g?b=qq&nk=1938257&s=640" }, "time": "2026-04-07 21:23:29" }PHP代码下载{cloud title="夸克网盘" type="quark" url="https://pan.quark.cn/s/9bb1f7834cb3" password="UA49"/} 最新获取QQ昵称的API (官方最稳定的老接口2026可用) https://blog.ilingku.com/archives/1/ 2026-04-07T19:22:00+08:00 官方接口最新获取QQ昵称,解决编码问题<?php // 设置跨域和返回格式 header("Access-Control-Allow-Origin: *"); header("Access-Control-Allow-Methods: GET"); header("Access-Control-Allow-Headers: Content-Type"); header('Content-type: application/json;charset=utf-8'); // 如果没有通过 GET 参数传入则使用此默认值 $qq = isset($_GET['qq']) ? $_GET['qq'] : '15159323'; function getUserInfo($qq) { $curl = curl_init(); curl_setopt_array($curl, array( CURLOPT_URL => 'https://users.qzone.qq.com/fcg-bin/cgi_get_portrait.fcg?uins=' . $qq, CURLOPT_RETURNTRANSFER => true, CURLOPT_SSL_VERIFYPEER => false, CURLOPT_SSL_VERIFYHOST => false, CURLOPT_ENCODING => '', CURLOPT_MAXREDIRS => 10, CURLOPT_TIMEOUT => 30, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, CURLOPT_CUSTOMREQUEST => 'GET', CURLOPT_POSTFIELDS => '------WebKitFormBoundaryYTwvlk5brGmyD3Mn', CURLOPT_HTTPHEADER => array( 'Content-Type: multipart/form-data; boundary=---012345678912345678912312', ), )); $response = curl_exec($curl); $encode = mb_detect_encoding($response, array("ASCII", 'UTF-8', "GB2312", "GBK", 'BIG5')); $response = mb_convert_encoding($response, 'UTF-8', $encode); $data = json_decode(substr($response, 17, -1), true); // 返回的用户信息 $userInfo = array( 'name' => isset($data[$qq][6]) ? $data[$qq][6] : '', 'mail' => $qq . '@qq.com', 'avatar' => isset($data[$qq][0]) ? str_replace('http://', 'https://', $data[$qq][0]) : '', 'qzone' => 'https://user.qzone.qq.com/' . $qq, 'imgurl' => 'https://q1.qlogo.cn/g?b=qq&nk=' . $qq . '&s=40', 'imgurl1' => 'https://q1.qlogo.cn/g?b=qq&nk=' . $qq . '&s=100', 'imgurl2' => 'https://q1.qlogo.cn/g?b=qq&nk=' . $qq . '&s=140', 'imgurl3' => 'https://q1.qlogo.cn/g?b=qq&nk=' . $qq . '&s=640' ); return $userInfo; } // 获取用户信息 $userInfo = getUserInfo($qq); // 构建返回的结果数组 $result = array( 'code' => 200, 'qq' => $qq, 'data' => $userInfo, 'time' => date('Y-m-d H:i:s') // 添加当前时间戳 ); // 输出 JSON 格式的结果 echo json_encode($result, JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES);输出json格式{ "code": 200, "qq": "123456", "data": { "name": "腾讯视频", "mail": "123456@qq.com", "avatar": "https://qlogo1.store.qq.com/qzone/123456/123456/100", "qzone": "https://user.qzone.qq.com/123456", "imgurl": "https://q1.qlogo.cn/g?b=qq&nk=123456&s=40", "imgurl1": "https://q1.qlogo.cn/g?b=qq&nk=123456&s=100", "imgurl2": "https://q1.qlogo.cn/g?b=qq&nk=123456&s=140", "imgurl3": "https://q1.qlogo.cn/g?b=qq&nk=123456&s=640" }, "time": "2026-04-07 19:35:24" }