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