叁夏资源(SanSummers.Com)-专业精品资源分享平台!

如何用PHP实现还原短网址的真实地址的功能?

作者 : 叁夏资源 本文共1012个字,预计阅读时间需要3分钟 发布时间: 2020-02-6 共96人阅读

常见的短网址都是通过 301 或 302 跳转的方式实现重定向到目标网站的,因此我们可以使用 PHP 的 curl_getinfo 来取得 header 中的重定向地址,也就是短网址对应的原始网址(嗯,原理就是这么简单……)。

一、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 '';
}

二、使用方法:

$shortUrl = 'https://url.cn/54VbB8h';    // 要还原的短网址
$orinalUrl = restoreUrl($shortUrl);
if($orinalUrl) {
    echo "短网址 {$shortUrl} 的还原结果:{$orinalUrl}";
} else {
    echo "短网址还原失败";
}
1. 本站所有资源来源于用户上传和互联网,如有侵权请及时联系站长!
2. 分享目的仅为供大家学习和交流,请不要用于商业用途!您需在下载24H内删除!
3. 如果你也有好源码、素材或教程,可以发布提交审核,推广有RMB奖励和额外收入!
4. 本站提供的源码、模板、插件、素材或教程等资源,都不包含技术服务请大家谅解!
5. 如有链接、图片无法下载或失效,请及时联系站长处理!
6. 本站资源的售价只是赞助,收取微弱费用来维持本站的日常运营所需!
7. 本站不保证所提供下载的资源准确性、安全性和完整性,源码仅供下载学习之用!
8. 如用于商业或者非法用途,与本站无关,一切后果请用户自负!
9. 如遇到加密压缩包,默认解压密码为"SanSummers",如无法解压请联系站长!
叁夏资源(SanSummers) » 如何用PHP实现还原短网址的真实地址的功能?