当前位置:首页 > PHP教程 > php应用 > 列表

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

发布:smiling 来源: PHP粉丝网  添加日期:2014-09-12 13:46:35 浏览: 评论:0 

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

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

  1. function getrealurl($url){ 
  2.  $header = get_headers($url,1); 
  3.  if (strpos($header[0],'301') || strpos($header[0],'302')) { 
  4.   if(is_array($header['Location'])) { 
  5.    return $header['Location'][count($header 
  6.  
  7. ['Location'])-1]; 
  8.   }else
  9.    return $header['Location']; 
  10.   } 
  11.  }else { 
  12.   return $url
  13.  } 

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

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

结果,代码如下:

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

Tags: PHP获取301 301重定向页

分享到: