PHP获取301重定向页面跳转后真实URL地址
今天看到一个朋友利用php socket来获取的301跳转之后地地址了,其实我们还有一个非常简单办法了,就是使用php get_headers()函数获取数获取http头信息了,下面来看看我们的实现方法。
获取301状态肯定没问题。
<?php 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 请求所发送的所有标头
<?php $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 )
永久链接:http://www.phprm.com/function/63363.html
转载随意!带上文章地址吧。