前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >PHP获取URL跳转后的最终地址

PHP获取URL跳转后的最终地址

作者头像
HHTjim 部落格
发布2022-09-26 11:23:34
2.1K0
发布2022-09-26 11:23:34
举报
文章被收录于专栏:HHTjim'S 部落格

PHP获取URL跳转后的最终地址

作者:matrix 被围观: 12,464 次 发布时间:2013-12-31 分类:零零星星 | 7 条评论 »

这是一个创建于 3166 天前的主题,其中的信息可能已经有所发展或是发生改变。

仅是获得响应头Location的最终地址

代码语言:javascript
复制
$url='http://189.io/G3qrdn';
echo get_jump_url($url);
function get_jump_url($url) {
    $url = str_replace(' ','',$url);
    do {//do.while循环:先执行一次,判断后再是否循环
        $curl = curl_init($url);
        curl_setopt($curl, CURLOPT_HEADER, 1);
        curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($curl, CURLOPT_TIMEOUT, 10);
        $header = curl_exec($curl);
        curl_close($curl);
        preg_match('|Location:\s(.*?)\s|',$header,$tdl);
        if(strpos($header,"Location:")){
            $url=$tdl ? $tdl[1] :  null ;
        }
        else{
            return $url.'';
            break;
        }
    }while(true);
}

参考:http://bbs.csdn.net/topics/390349430

附curl常量:

代码语言:javascript
复制
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);//允许链接自动跳转
curl_setopt($curl, CURLOPT_MAXREDIRS, 3);//限定CURLOPT_FOLLOWLOCATION递归返回的数量
CURLOPT_AUTOREFERER :curl 会自动添加 Referer header 在每一个跳转链接,也就是一跟到底。

这样也就避免上面代码的do while循环。

建议使用get_headers()函数解决

参考:http://upc.gg.blog.163.com/blog/static/297984982013123970455/

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • PHP获取URL跳转后的最终地址
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档