全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

短链接还原php后怎么分享_生成新短链接的便捷方法【介绍】

PHP还原短链接需用cURL禁用自动跳转并解析Location响应头;生成则依赖Bitly等API或自建系统;file_get_contents因默认跟随重定向且不返回响应头而不适用。

PHP 本身不提供短链接还原或生成的内置功能,所有操作都依赖外部服务(如 Bitly、TinyURL)或自建逻辑。直接用 PHP “还原短链接” 实际上就是发起一次 HTTP 请求获取重定向目标地址;而“生成新短链接”必须调用 API 或写数据库映射 + 自定义路由。

怎么用 PHP 还原短链接(获取真实 URL)

短链接本质是 301/302 重定向,还原的关键是**不跟随跳转**,只读取 Location 响应头。用 curl 最可靠,file_get_contents 默认会跟随跳转,不能直接用。

  • 必须设置 CURLOPT_FOLLOWLOCATIONfalse
  • 必须设置 CURLOPT_HEADERtrue 才能捕获响应头
  • curl_getinfo($ch, CURLINFO_REDIRECT_URL) 在某些情况下返回空,优先解析 Location
function resolveShortUrl($shortUrl) {
    $ch = curl_init($shortUrl);
    curl_setopt_array($ch, [
        CURLOPT_NOBODY => true,
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_FOLLOWLOCATION => false,
        CURLOPT_HEADER => true,
        CURLOPT_TIMEOUT => 5,
        CURLOPT_USERAGENT => 'Mozilla/5.0'
    ]);
    $response = curl_exec($ch);
    $headerSize = curl_getinfo($ch, CURLINFO_HEADER_SIZE);
    $headers = substr($response, 0, $headerSize);
    curl_close($ch);

    if (preg_match('/Location:\s*(.+)/i', $headers, $matches)) {
        return trim($matches[1]);
    }
    return null;
}
// 示例
$realUrl = resolveShortUrl('https://t.co/abc123');
echo $realUrl; // 输出类似 https://example.com/post?id=42

为什么 file_get_contents 不能直接还原短链接

file_get_contents 默认行为是自动跟随全部重定向(最多 20 次),最终返回的是最终页面内容,不是跳转链路本身。你得不到中间的 Location,也就无法还原原始跳转目标。

  • 即使设 stream_context_create(['http' => ['follow_location' => false]]),PHP 7.4+ 才支持该选项,且部分版本仍不可靠
  • 它不返回响应头,无法提取 Location
  • 遇到多级跳转(如 t.co → bit.ly → real.com)时,curl 更可控

生成新短链接:推荐用 Bitly API(v4)的最小可行方案

自建短链系统要处理域名、路由、存储、防刷、统计,成本高。用 Bitly 是最省事的选择,只需一个 access_token 和两行请求。

  • 注册 Bitly 获取 ACCESS_TOKEN(在 API Settings 页面)
  • Bitly v4 要求请求头带 Authorization: Bearer YOUR_TOKEN
  • 返回 JSON 中的 link 字段就是新短链接
$longUrl = 'https://example.com/report?date=2025-06&user=789';
$token = 'YOUR_ACCESS_TOKEN';
$data = json_encode(['long_url' => $longUrl]);

$ch = curl_init('https://api-ssl.bitly.com/v4/shorten');
curl_setopt_array($ch, [
    CURLOPT_POST => true,
    CURLOPT_POSTFIELDS => $data,
    CURLOPT_HTTPHEADER => [
        'Content-Type: application/json',
        'Authorization: Bearer ' . $token
    ],
    CURLOPT_RETURNTRANSFER => true
]);

$response = json_decode(curl_exec($ch), true);
curl_close($ch);

if (isset($response['link'])) {
    echo $response['link']; // e.g. https://bit.ly/3xYzAbC
}

分享时注意 Referer 和移动端适配问题

生成的短链接被点击后,目标页拿到的 $_SERVER['HTTP_REFERER'] 是短链域名(如 bit.ly),不是用户原始来源。如果业务依赖来源分析,得在长 URL 中显式携带参数,例如:

  • utm_source=wechat 写进原始 URL 再压缩:https://example.com/?ref=wechat
  • 避免用 JS 跳转方式分享(如 window.location.href=...),iOS 微信中可能丢失 Referer
  • 短链接指向的落地页必须响应式,否则在微信内嵌浏览器里体验极差

真正麻烦的从来不是“怎么生成一个短链接”,而是“生成之后怎么追踪、怎么防滥用、怎么确保在所有 App 内都能正常跳转”。别低估微信、飞书、钉钉对 URL 的拦截策略——有时候连 http:// 都会被自动禁用,强制走 HTTPS。


# php  # js  # json  # 微信  # 浏览器  # app  # access  # ssl  # curl  # ios  # 路由  # 飞书  # win  # stream 


相关文章: 如何通过虚拟主机空间快速建站?  如何通过智能用户系统一键生成高效建站方案?  网站企业制作流程,用什么语言做企业网站比较好?  如何在Golang中使用encoding/gob序列化对象_存储和传输数据  较简单的网站制作软件有哪些,手机版网页制作用什么软件?  如何在建站之星绑定自定义域名?  制作网站的网址是什么,请问后缀为.com和.com.cn还有.cn的这三种网站是分别是什么类型的网站?  建站之星备案是否影响网站上线时间?  如何快速搭建高效简练网站?  如何高效配置IIS服务器搭建网站?  制作网站软件推荐手机版,如何制作属于自己的手机网站app应用?  建站之星如何通过成品分离优化网站效率?  如何在香港服务器上快速搭建免备案网站?  如何选择可靠的免备案建站服务器?  php能控制zigbee模块吗_php通过串口与cc2530 zigbee通信【介绍】  个人摄影网站制作流程,摄影爱好者都去什么网站?  常州企业网站制作公司,全国继续教育网怎么登录?  如何用美橙互联一键搭建多站合一网站?  网站专业制作公司,网站编辑是做什么的?好做吗?工作前景如何?  网站设计制作公司地址,网站建设比较好的公司都有哪些?  高防网站服务器:DDoS防御与BGP线路的AI智能防护方案  网站设计制作企业有哪些,抖音官网主页怎么设置?  营销式网站制作方案,销售哪个网站招聘效果最好?  怎么制作一个起泡网,水泡粪全漏粪育肥舍冬季氨气超过25ppm,可以有哪些措施降低舍内氨气水平?  如何在腾讯云免费申请建站?  如何用IIS7快速搭建并优化网站站点?  如何彻底卸载建站之星软件?  如何确保西部建站助手FTP传输的安全性?  如何通过云梦建站系统实现SEO快速优化?  义乌企业网站制作公司,请问义乌比较好的批发小商品的网站是什么?  开封网站制作公司,网络用语开封是什么意思?  建站之星与建站宝盒如何选择最佳方案?  建站之星各版本价格是多少?  海南网站制作公司有哪些,海口网是哪家的?  专业网站制作服务公司,有哪些网站可以免费发布招聘信息?  css网站制作参考文献有哪些,易聊怎么注册?  建站之星导航配置指南:自助建站与SEO优化全解析  建站主机选购指南:核心配置优化与品牌推荐方案  SAX解析器是什么,它与DOM在处理大型XML文件时有何不同?  外贸公司网站制作,外贸网站建设一般有哪些步骤?  合肥制作网站的公司有哪些,合肥聚美网络科技有限公司介绍?  建站之星如何保障用户数据免受黑客入侵?  已有域名如何免费搭建网站?  建站VPS推荐:2025年高性能服务器配置指南  如何用PHP快速搭建高效网站?分步指南  如何解决VPS建站LNMP环境配置常见问题?  Bpmn 2.0的XML文件怎么画流程图  C++用Dijkstra(迪杰斯特拉)算法求最短路径  制作ppt免费网站有哪些,有哪些比较好的ppt模板下载网站?  如何有效防御Web建站篡改攻击? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。