通过php代码将短网址还原到原始网址



短链接其实就是将一个长url地址转换到一个短url地址,目的以方便用户的记忆与传播,目前网络上面有很多的短连接生成服务,不如:百度,新浪,淘宝等等都有提供短连接服务。

那么我们怎样才能把短连接恢复到真实的原始链接呢?其实大部分常见的短网址原理都是通过 301 或 302 跳转的方式实现重定向到目标网站的原始网址上面,因此我们可以使用 PHP的cURL函数来获取header中的重定向地址,这样就可以取得短网址对应的真实原始网址了。下面分享一段通过php还原短连接的代码:

代码如下:

function restoreUrl($shortUrl) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $shortUrl);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 6.1; rv:2.0.1) Gecko/20100101 Firefox/4.0.1');
curl_setopt($ch, CURLOPT_HEADER, true);
curl_setopt($ch, CURLOPT_NOBODY, false);
curl_setopt($ch, CURLOPT_TIMEOUT, 15);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);
curl_setopt($ch, CURLOPT_ENCODING, 'gzip');
$data = curl_exec($ch);
$curlInfo = curl_getinfo($ch);
curl_close($ch);
if($curlInfo['http_code'] == 301 || $curlInfo['http_code'] == 302) {
return $curlInfo['redirect_url'];
}
return '';
}

//调用方法如下:
$RestoreUrl =  "您要还原的短网址";
$orinalUrl = restoreUrl($RestoreUrl);
if($orinalUrl) {
echo "短网址 {$RestoreUrl} 还原结果:{$orinalUrl}";
} else {
echo "短网址还原失败!";
}

$RestoreUrl=你要恢复的短网址

以上就是短链接恢复到真实url的一个简单的方法,最核心的其实就是curl这个模块的使用,此代码适用于大多数的短网址恢复,但是不适用于前端使用 js 跳转的短网址。

注:PHP需要使用libcurl 7.0.2-beta 或者更高版本。在PHP 4.2.3 里使用cURL,你需要安装7.9.0或更高版本的libcurl。从PHP 4.3.0开始你需要安装7.9.0或更高版本的libcurl。从PHP 5.0.0开始你需要安装7.10.5或更高版本的libcurl