• 注册
  • 前端后端 前端后端 关注:0 内容:62

    PHP获取多次跳转后真实的url地址

  • 查看作者
  • 打赏作者
  • SVIP7
    帅气冲天

    问题前言

    有没有遇到过url缩短之类的链接或者是加密过的跳转URL,那么我们想得到跳转后的真实url怎么弄?

    一个一个点击链接后再复制?那太lou了,试试下面这段代码吧

    解决方案

    <?php
    /**
      * 获取多次跳转后真实的url
      * @param str $url  查询
      * $return str      定向后的url的真实url
     */
    function getrealurl($url){
        $header = @get_headers($url,1);  // 默认第二个参数0,可选1,返回关联数组
        if(!$header){
            exit('无法打开此网站'.$url);
        }
        //var_dump($header);
        if (strpos($header[0],'301') || strpos($header[0],'302')) {
            if(is_array($header['Location'])) {
                return $header['Location'][count($header['Location'])-1];
            }else{
                return $header['Location'];
            }
        }else {
            return $url;
        }
    }
     
    header('Content-Type: text/html; charset=utf-8');
    $url = 'http://www.xxx.com';
    $url = getrealurl($url);
    echo '真实的url为:'.$url;

    使用说明

     仅适用于抓取 Location 类的跳转301/302,如果是使用js跳转的中转页面则无法抓取

    header('Location: http://www.xxx.com');

     请根据自己实际情况做相应修改

    请登录之后再进行评论

    登录

    我关注的论坛

    暂没有数据

  • 发布内容
  • 做任务
  • 偏好设置
  • 直达底部
  • 帖子间隔 侧栏位置: