>php教程 >php手册 >PHP获取301重定向页面跳转后真实URL地址

PHP获取301重定向页面跳转后真实URL地址

WBOY
WBOY원래의
2016-05-24 13:25:282088검색

今天看到一个朋友利用php socket来获取的301跳转之后地地址了,其实我们还有一个非常简单办法了,就是使用php get_headers()函数获取数获取http头信息了,下面来看看我们的实现方法.

获取301状态肯定没问题,代码如下:

function getrealurl($url){ 
 $header = get_headers($url,1); 
 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; 
 } 
}

补充:get_headers,取得服务器响应一个 HTTP 请求所发送的所有标头,代码如下:

$url = 'http://phprm.com';print_r(get_headers($url));

结果,代码如下:

Array 
( 
    [0] => HTTP/1.1 301 Moved Permanently 
    [1] => Date: Tue, 01 Jul 2014 07:49:26 GMT 
    [2] => Server: Apache/2.2.22 (Win32) PHP/5.2.17 
    [3] => Location: http://www.phprm.com/ 
    [4] => Content-Length: 314 
    [5] => Content-Type: text/html; charset=iso-8859-1 
    [6] => X-Via: 1.1 jszjsx60:8080 (Cdn Cache Server V2.0), 1.1 zb51:6 (Cdn Cache Server V2.0) 
    [7] => Connection: close 
    [8] => HTTP/1.1 200 OK 
    [9] => Date: Tue, 01 Jul 2014 07:49:27 GMT 
    [10] => Server: Apache/2.2.22 (Win32) PHP/5.2.17 
    [11] => Last-Modified: Tue, 01 Jul 2014 07:41:43 GMT 
    [12] => ETag: "7a0000002fe1a1-68a9-4fd1ce83bc0f7" 
    [13] => Accept-Ranges: bytes 
    [14] => Content-Length: 26793 
    [15] => Content-Type: text/html 
    [16] => X-Via: 1.1 jszjsx60:8080 (Cdn Cache Server V2.0), 1.1 zb62:5 (Cdn Cache Server V2.0) 
    [17] => Connection: close 
)


文章地址:

转载随意^^请带上本文地址!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.