PHP用Curl获取302跳转后的网址|短链(短网址)还原

前言

我在写一个源码,其中要用到获取短链还原后的网址,然后从网上查了一下资料,也遇到很多坑,所以在这分享下:

<?php
function short2long($url='',$time_out=10){
    if($url){
        $ch=curl_init($url);
        curl_setopt($ch,CURLOPT_SSL_VERIFYPEER, FALSE);
        curl_setopt($ch,CURLOPT_SSL_VERIFYHOST, FALSE);
        curl_setopt($ch,CURLOPT_RETURNTRANSFER, TRUE);
        curl_setopt($ch,CURLOPT_HEADER, TRUE);
        curl_setopt($ch,CURLOPT_NOBODY, TRUE);
        curl_setopt($ch,CURLOPT_TIMEOUT, $time_out);
        $data=curl_exec($ch);
        $header=curl_getinfo($ch);
        curl_close($ch);
        if($header['http_code']=='302' && isset($header['redirect_url'])){
            $data=$header['redirect_url'];
        }elseif($header['http_code']=='302' &amp;&amp; !isset($header['redirect_url'])){
            preg_match('|Location:\s(.*?)\s|',$data,$de);
            $data=$de['1'];
        }else{
            $data=false;
        }
    }else{
        $data=false;
    }
    return $data;
}

$shorturl='http://t.cn/Ri6G6uO';//需要进行还原长网址的短链接
$rec=short2long($shorturl);
if($rec){
    echo $rec;//还原成功,还原后的网址是:https://blog.ogdn.net
}else{
    echo '还原失败,请再试一下吧~';
}

如无特别声明,该文章均为 现在网NowTime.cc)原创,转载请遵循 署名-非商业性使用 4.0 国际(CC BY-NC 4.0) 协议,即转载请注明文章来源。


标签: PHP, Curl

赞 (0)

添加新评论