快捷导航
收起左侧

PHP 实现“万能”的短网址还原

[复制链接]
查看: 10312|回复: 4
  • TA的每日心情
    郁闷
    2024-1-13 20:31
  • 签到天数: 11 天

    连续签到: 1 天

    [LV.3]偶尔看看II

    发表于 2022-7-26 00:33:19 | 显示全部楼层 |阅读模式
    <
    常见的短网址都是通过 301 或 302 跳转的方式实现重定向到目标网站的,因此我们可以使用 PHP 的 curl_getinfo来取得 header 中的重定向地址,也就是短网址对应的原始网址(嗯,原理就是这么简单…… 49.png
    [PHP] 纯文本查看 复制代码
    /***
    * 万能短网址还原函数
    * @param $shortUrl 短网址
    * @return 原始网址 | 空(还原失败或非短网址)
    */
    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);
        if($curlInfo['http_code'] == 301 || $curlInfo['http_code'] == 302) {
            return $curlInfo['redirect_url'];
        }
        return '';
    }

    使用方法:
    [PHP] 纯文本查看 复制代码
    $shortUrl = 'https://url.cn/54VbB8h';    // 要还原的短网址
    $orinalUrl = restoreUrl($shortUrl);
    if($orinalUrl) {
        echo "短网址 {$shortUrl} 的还原结果:{$orinalUrl}";
    } else {
        echo "短网址还原失败";
    }
    经过实测,该函数可以顺利实现下列短网址的还原: 47.png
    • https://url.cn/54VbB8h
    • http://t.cn/AiR8Qoyp
    • http://uee.me/cAhq8
    • http://rrd.me/eWCg3
    • https://sohu.gg/MSYnnHo02
    • https://dwz.cn/I5l2YWKL
    • http://1t.click/bceu
    • http://dwz.win/qMp
    • http://qq.cn.hn/e8N
    • http://tb.cn.hn/x7X
    • http://jd.cn.hn/aaK9
    • http://tinyurl.com/y5gkl3v9
    • http://u6.gg/sLaav
    • http://c7.gg/fQBWn
    • http://985.so/ejaT
    • http://new.3qtt.cn/1hqafu
    • http://dwz1.cc/DvjLsDcC&#8203;
    • http://suo.im/555AiB
    • https://suo.dog/msugd
    • http://sina.lt/eEyd
    • http://mrw.so/4woTLt
    不过,诸如 https://m.tb.cn/h.ew5NAEA 这种在前端使用 js 跳转的短网址就无能为力了~_~
    1.png



    该用户从未签到

    发表于 2026-4-11 07:50:29 | 显示全部楼层
    提示: 作者被禁止或删除 内容自动屏蔽
    回复

    该用户从未签到

    发表于 2026-4-11 15:52:35 | 显示全部楼层
    提示: 作者被禁止或删除 内容自动屏蔽
    回复

    该用户从未签到

    发表于 2026-4-12 13:06:25 | 显示全部楼层
    提示: 作者被禁止或删除 内容自动屏蔽
    回复

    该用户从未签到

    发表于 2026-4-12 18:12:53 | 显示全部楼层
    提示: 作者被禁止或删除 内容自动屏蔽
    回复

    本版积分规则

    精彩推荐
    嗨,AV8D ~!X

    喜欢给你阳光,让你充满活力!

    • 反馈建议:2308883803@qq.com
    • 工作时间:周一~周五

    云服务支持

    精彩内容,快速检索

    关注我们

    Copyright© 盒子云 - 你笑起来真好看~  Powered by Discuz!    ( 蜀ICP备18033287号-3 )