PHP短链接url还原成长链接

在开发过程中,碰到了需要校验用户回填的短链接是不是系统所需要的,于是就需要还原找出短链接所对应的长链接。

  • 长链接转短链接

在百度上搜索程序员,跳转页面后的url就是一个长链接。当然你可以从任何地方复制一个长链接过来。


长链接

bash 复制代码
https://www.baidu.com/s?wd=%E7%A8%8B%E5%BA%8F%E5%91%98&rsv_spt=1&rsv_iqid=0xed2c9c7a0033dc5d&issp=1&f=8&rsv_bp=1&rsv_idx=2&ie=utf-8&tn=baiduhome_pg&rsv_enter=1&rsv_dl=ib&rsv_sug2=0&rsv_btype=i&inputT=11080&rsv_sug4=11080

使用工具把长链接转成一个短链接

bash 复制代码
https://t.hk.uy/b87R
  • 短链接还原长链接
php 复制代码
/**
 * 短链还原成长链
 * @param $shortUrl
 * @return mixed|string
 */
function restoreUrl($shortUrl)
{
    $curl = curl_init();
    curl_setopt($curl, CURLOPT_URL, $shortUrl);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($curl, CURLOPT_USERAGENT, 'Mozilla / 5.0 (Windows NT 10.0; Win64; x64; rv:70.0) Gecko / 20100101 Firefox / 70.0');
    curl_setopt($curl, CURLOPT_HEADER, true);
    curl_setopt($curl, CURLOPT_NOBODY, false);
    curl_setopt($curl, CURLOPT_TIMEOUT, 15);
    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
    curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 2);
    curl_setopt($curl, CURLOPT_ENCODING, 'gzip');
    $data = curl_exec($curl);
    $curlInfo = curl_getinfo($curl);
    curl_close($curl);

    print_r($curlInfo);exit;

    if ($curlInfo['http_code'] == 301 || $curlInfo['http_code'] == 302) {
        return $curlInfo['redirect_url'];
    }
    return '';
}

$url = 'https://t.hk.uy/b87R';
echo restoreUrl($url);

可以看到,使用 curl_getinfo 方法获取到的数据中,有一个 redirect_url 字段,就是原始长链接

相关推荐
szarron7 分钟前
HTOOL‑SA12 + HT06 近场探头组合实操|手持设备工位 EMI 预兼容排查完整流程
运维·服务器·开发语言·网络·射频工程·频谱仪
菜鸟~noob2338 分钟前
【电子战】第07篇:多普勒测向【含matlab代码】
android·开发语言·matlab
Wang's Blog10 分钟前
Java框架快速入门: Spring Security+OAuth2之跨域处理
java·开发语言·spring
雪芽蓝域zzs11 分钟前
第四十二节:全局字典封装(后端字典,下拉选择复用)
开发语言·前端·javascript
老王爱玩车15 分钟前
第2讲:C语言数据类型和变量
c语言·开发语言
aixingpan22 分钟前
aixingpan.cn API开发文档:api_docs_trichart_natal_progression_ter_transit2接口指南
前端·php
菜鸟~noob23330 分钟前
【电子战】第12篇:TDOA 定位——双曲线与等时差线【含matlab代码】
开发语言·matlab
零依赖极客36 分钟前
Day 9·1 KV 也量化——q8 KV 把缓存与 decode 带宽压到一半
c语言·开发语言·arm开发·人工智能·缓存·矩阵
gf132111142 分钟前
python_调用远程服务器上的openclaw
服务器·python·php