码迷,mamicode.com
首页 > Web开发 > 详细

php 获取301跳转后真实的url

时间:2014-08-08 13:01:18      阅读:276      评论:0      收藏:0      [点我收藏+]

标签:http   java   os   io   ar   问题   cti   服务器   

在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跳转至 www.google.com
再www.google.com 会302跳转至 www.google.com.hk

我写了个php函数 其php函数作用:
输入 google.com 得到 www.google.com.hk
输入 www.google.com 得到 www.google.com.hk
输入 www.google.com.hk 得到 www.google.com.hk

<?php

/*

@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为:http://www.google.com.hk/

?>

php 获取301跳转后真实的url,布布扣,bubuko.com

php 获取301跳转后真实的url

标签:http   java   os   io   ar   问题   cti   服务器   

原文地址:http://my.oschina.net/baiduapi/blog/299228

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!