php短链接api,PHP实现短网址还原API接口

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

可还原大部分短网址,堪称万能还原也不过。

/*

* 短网址还原

*/

header('Access-Control-Allow-Origin:*');

header('Content-type:application/json; charset=utf-8');

!empty($_GET['url']) ? $api = $_GET['url'] : exit(json_encode([

'code'=>201,

"msg"=>"关键词不能为空"

],JSON_UNESCAPED_UNICODE));

/*

* 请求

*/

$json = myCurl($api);

/*

* 判断

*/

if($json){

echo json_encode(array('code'=>200,'msg'=>$api,'url'=>$json),JSON_PRETTY_PRINT|JSON_UNESCAPED_UNICODE);

} else {

echo json_encode(array('code'=>202,'msg'=>'短网址还原失败'),JSON_PRETTY_PRINT|JSON_UNESCAPED_UNICODE);

}

/***

* 万能短网址还原函数

* @param $url 短网址

* @return 原始网址 | 空(还原失败或非短网址)

*/

function myCurl($url) {

$curl = curl_init();

curl_setopt($curl, CURLOPT_URL, $url);

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 '';

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值