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

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

WBOY
WBOYOriginal
2016-05-24 13:25:282021browse

今天看到一个朋友利用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 
)


文章地址:

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

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn