2014-02-20 50 views

回答

2

下面的代码应该为你工作,它采用了CURLOPT_HEADERFUNCTION卷曲选项:

$locations = array(); 

$curl = curl_init($url); 
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true); 
curl_setopt($curl, CURLOPT_HEADERFUNCTION, function($curl, &$header) use(&$locations) { 
    $key = 'Location:'; 
    if (strpos($header, $key) === 0) { 
     $locations[] = trim(substr($header, strlen($key))); 
    } 
    return strlen($header); 
}); 
// ... 
curl_exec($curl); 

$locations将包含卷曲经重定向到的URL。

0

您应该可以使用CURLOPT_HEADER选项并检查返回的标题。不幸的是,这将需要解析出位置标题,因为我不知道从返回的内容中获取特定标题值的更直接方式。

您可能会非常适合关闭跟随重定向的选项,并手动跟踪cURL请求以遵循重定向,并沿途记录重定向信息。