PHP如何通过URL访问,获得新的URL 两种方法

项目场景:

PHP如何通过URL访问,获得新的URL 两种方法


解决方法:

两种解决方法
1.1

$url = 'http://passport.drcloud.cn/api/logon.asp?id=1&ru=http://203.158.158.122/store/thirdLogin.php&tw=1800&sm=0&lc=2052';
 $newurl = getMapUrl($url);
 echo $newurl;
  
 function getMapUrl($url){
     $result = get_headers($url, true);
     return isset($result['Location'])? $result['Location'] : '';
 }

1.2

$url = 'http://passport.drcloud.cn/api/logon.asp?id=1&ru=http://203.158.158.122/store/thirdLogin.php&tw=1800&sm=0&lc=2052';
 $newurl = getMapUrl($url);
 echo $newurl;
 
 function getMapUrl($url){
     file_get_contents($url);
     $result = $http_response_header;
     if($result){
         foreach($result as $val){
             if(substr($val,0,10)=='Location: '){
                 return str_replace('Location: ','', $val);
             }
         }
     }
     return '';
 }

2

$url = 'http://passport.drcloud.cn/api/logon.asp?id=1&ru=http://203.158.158.122/store/thirdLogin.php&tw=1800&sm=0&lc=2052';
 $newurl = getHeadersNew($url);
 var_dump($newurl);
 function getHeadersNew($url){ 
     $ch= curl_init(); 
     curl_setopt($ch, CURLOPT_URL, $url); 
     curl_setopt($ch, CURLOPT_NOBODY, 1); 
     curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
     curl_setopt($ch, CURLOPT_HEADER, 1); 
     $f=curl_exec($ch); 
     curl_close($ch); 
     $h=explode("",$f); 
     $r=array(); 
     foreach( $h as $t){ 
       $rr=explode(":",$t,2); 
       if(count($rr)==2 ){ $r[$rr[0]]=trim($rr[1]);} 
     } 
     return $r; 
 }

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值