php使⽤curl获取Location:重定向后url
在php获取http头部信息上,php有个⾃带的函数get_headers(),我以前也是⽤这个的,听说效率在win上不咋地,再加上最近研究百度url⽆果,写了cURL获取重定向url的php代码来折腾。
以前我是⽤get_headers来获取跳转后的url
get_headers的代码
1 2 3 4 5 6 7 8 9 10 11//curl的百度百科
$url= '';
$header= get_headers($url,1);
if(strpos($header[0],'301') || strpos($header[0],'302')) {
if(is_array($header['Location'])) {
$info= $header['Location'][count($header['Location'])-1];    }else{
$info= $header['Location'];
}
}
echo$info;
现在⽤cURL来重写⼀遍代码
CURL是需要设置curl_setopt 和curl_getinfo才可以获取 Location:重定向1
2 3 4 5 6 7 8 9 10 11 12 13 14 15//curl的百度百科
$url= '';
$ch= curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
php中header是什么意思// 不需要页⾯内容
curl_setopt($ch, CURLOPT_NOBODY, 1);
/
/ 不直接输出
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); // 返回最后的Location
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); curl_exec($ch);
$info= curl_getinfo($ch,CURLINFO_EFFECTIVE_URL); curl_close($ch);
echo'真实url为:'.$info;
因为还和⽹速有关,两段代码的效率我还没测试。我使⽤get_headers本地测试是可以的,但是上传⾄服务器执⾏出错,不知道为什么?

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。