常见的短网址都是通过 301 或 302 跳转的方式实现重定向到目标网站的,因此我们可以使用 PHP 的 curl_getinfo 来取得 header 中的重定向地址,也就是短网址对应的原始网址
/*** * 万能短网址还原函数 * @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 "短网址还原失败"; }
本文地址:http://www.airsd.cn/archives/1053
温馨提示:文章内容系作者个人观点,不代表我的技术文章分享对观点赞同或支持。
版权声明:本文为转载文章,来源于 sqsqz ,版权归原作者所有,欢迎分享本文,转载请保留出处!
温馨提示:文章内容系作者个人观点,不代表我的技术文章分享对观点赞同或支持。
版权声明:本文为转载文章,来源于 sqsqz ,版权归原作者所有,欢迎分享本文,转载请保留出处!
资料来自网络