• 注册
  • 实用工具 实用工具 关注:0 内容:4

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

  • 查看作者
  • 打赏作者
    • 实用工具
    • Lv.14
      帅气冲天

      问题前言

      有没有遇到过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');

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

      请登录之后再进行评论

      登录
    • 发布内容
    • 做任务
    • 实时动态
    • 偏好设置
    • 帖子间隔 侧栏位置: