今天看到一个朋友利用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
文章地址:
转载随意^^请带上本文地址!
今天看到一个朋友利用php socket来获取的301跳转之后地地址了,其实我们还有一个非常简单办法了,就是使用php get_headers()函数获取数获取http头信息了,下面来看看我们的实现方法.获取301状态肯定没问题,代码如下:function getrealurl($url){$header = get_headers($url,1);if (strpos($header[0],'3...
1开头的http状态码
表示临时响应并需要请求者继续执行操作的状态代码。
100 (继续) 请求者应当继续提出请求。 服务器返回此代码表示已收到请求的第一部分,正在等待其余部分。
101 (切换协议) 请求者已要求服务器切换协议,服务器已确认并准备切换。
2开头的http状态码
表示请求成功
200 成功处理了请求,一般情况下都是返回此状态码;
201 请求成功并且服务器创...
* get_redirect_
url
()
* Gets the address that the provided
URL
redirects to,
* or FALSE if there's no redirect.
* @param stri
有的
ajax
框架,封装了对
301
,302等返回码的处理,如function updatePage() {
if (request.readyState == 4) {
if (request.status == 200) {
var response = request.responseText.split("|");
docum