源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

解析php 版获取重定向后的地址(代码)

  • 时间:2020-01-29 18:04 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:解析php 版获取重定向后的地址(代码)
[u]复制代码[/u] 代码如下:
//取重定向的地址  class RedirectUrl{      //地址      var $url;      //初始化地址      function RedirectUrl($url){          $this->url = $url;      }      /**       * get_redirect_url()       * 取重定向的地址       *       * @param string $url       * @return string       */      private function get_redirect_url($url){          $redirect_url = null;          $url_parts = @parse_url($url);          if (!$url_parts) return false;          if (!isset($url_parts['host'])) return false; //can't process relative URLs          if (!isset($url_parts['path'])) $url_parts['path'] = '/';          $sock = fsockopen($url_parts['host'], (isset($url_parts['port']) ? (int)$url_parts['port'] : 80), $errno, $errstr, 30);          if (!$sock) return false;          $request = "HEAD " . $url_parts['path'] . (isset($url_parts['query']) ?'?'.$url_parts['query'] : '') . " HTTP/1.1\r\n";          $request .= 'Host: ' . $url_parts['host'] . "\r\n";          $request .= "Connection: Close\r\n\r\n";          fwrite($sock, $request);          $response = '';          while(!feof($sock)) $response .= fread($sock, 8192);          fclose($sock);          if (preg_match('/^Location: (.+?)$/m', $response, $matches)){              return trim($matches[1]);          } else {              return false;          }      }      /**       * get_all_redirects()       * 取所有重定向地址       *       * @param string $url       * @return array       */      private function get_all_redirects($url){          $redirects = array();          while ($newurl = $this->get_redirect_url($url)){              if (in_array($newurl, $redirects)){                  break;              }              $redirects[] = $newurl;              $url = $newurl;          }          return $redirects;      }      /**       * get_final_url()       * 取实际地址       *       * @param string $url       * @return string       */      function get_final_url(){          $redirects = $this->get_all_redirects($this->url);          if (count($redirects)>0){              return array_pop($redirects);          } else {              return $this->url;          }      }  }  /**   * get_show_pic   * 取最终要显示的图片地址   *   * @param string $url   * @return  string   */  function get_show_pic($url,$noimg ='noimg.gif',$newimg="http://special.ku6img.com/projects/2010/d-color/images/slt-1.jpg"){      $obj = new RedirectUrl($url);      $realurl = $obj->get_final_url();      if(strpos($realurl,$noimg)>0){          return $newimg;      }      return $url;  }  //参考  echo "<img src='".get_show_pic("http://i2.ku6img.com/encode/picpath/2010/12/9/14/1294948410019/5.jpg")."'/>";  ?>
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部