用PHP获取网页301/302跳转后的真实地址


这样的需求还是很大的,比如说在获取Baidu的搜索结果的时候,得到的都是类似于 ‘http://www.baidu.com/link?url=j8G7nxXYa-asQ68krSIb9bv2A3shycPzQJD8BVUUPQu’ 这样的一个URL,需要经过一个/多个跳转,这时这样的功能就有作用了:

<?php

function getrealurl($url){
    $header = get_headers($url, 1);
	print_r($header);
    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;
    }
}
//echo getrealurl('http://ixyzero.com/');
echo getrealurl('http://www.baidu.com/link?url=j8G7nxXYa-asQ68krSIb9bv2A3shycPzQJD8BVUUPQu');

做个记录!

,

《“用PHP获取网页301/302跳转后的真实地址”》 有 1 条评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注