PHP短链接url还原成长链接

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

  • 长链接转短链接

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

在这里插入图片描述
长链接

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

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

https://t.hk.uy/b87R
  • 短链接还原长链接
/**
 * 短链还原成长链
 * @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 字段,就是原始长链接
在这里插入图片描述

相关推荐

  1. day3

    2024-01-12 15:18:03       26 阅读
  2. 的理解

    2024-01-12 15:18:03       33 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-01-12 15:18:03       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-01-12 15:18:03       101 阅读
  3. 在Django里面运行非项目文件

    2024-01-12 15:18:03       82 阅读
  4. Python语言-面向对象

    2024-01-12 15:18:03       91 阅读

热门阅读

  1. MongoDB开发规范及建模

    2024-01-12 15:18:03       39 阅读
  2. 添加AvalonEdit控件到WinForm

    2024-01-12 15:18:03       61 阅读
  3. Linux文件和目录管理命令----link命令

    2024-01-12 15:18:03       50 阅读
  4. ubuntu 启用core文件

    2024-01-12 15:18:03       38 阅读
  5. Ubuntu 上CUDA移动到别的目录

    2024-01-12 15:18:03       53 阅读
  6. http(二)

    2024-01-12 15:18:03       48 阅读
  7. vue文件夹上传-基于vue-simple-uploader简单封装

    2024-01-12 15:18:03       49 阅读
  8. 响应式编程WebFlux基础实战练习

    2024-01-12 15:18:03       43 阅读
  9. C++的内存管理模型

    2024-01-12 15:18:03       59 阅读
  10. Transformer学习(一)

    2024-01-12 15:18:03       60 阅读