php 获取301跳转后真实的url

在php收罗中常常碰着有URL 301重定向的环境,假如呈现了这样的环境,有大概呈现造成未知的功效,因为主机名纷歧样了。我们的收罗中主机名不能用301重定向前的URL,要用重定向之后的URL。

我在以下PHP的例子中先容下怎么获取301定向后真实的URL,今朝我知道有两种要领

1、用get_headers函数2、用cURL

现先容操作get_headers() 函数获取http头
   php 自带的get_headers()取得处事器响应一个 HTTP 请求所发送的所有标头。 获取301状态必定没问题。

301定向的例子:
 google.com 会301跳转至
  再 会302跳转至

我写了个php函数 其php函数浸染:
 输入 google.com 获得
 输入 获得
 输入 获得

<?php /* getrealurl 获取301、302重定向后的URL地点 by enenba.com @param str $url 查询 $return str 定向后的url的真实url */ 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; } } $url = 'http://google.com'; $url = getrealurl($url); echo '真实的url为:'.$url; //真实的url为: ?>

PS:暂差池url的正确性做判定,不正确的url也原样返回

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/7859.html