2012-12-13 40 views
2

我一直在使用PHP curl从远程网站获取所需的数据。这里是我使用的卷曲功能:在PHP cURL服务器响应中检查标题

function get_content($adr) 
    { 
     $ch = curl_init(); 

     curl_setopt ($ch, CURLOPT_URL, $adr); 
     curl_setopt($ch,CURLOPT_USERAGENT,'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.13) Gecko/20080311 Firefox/2.0.0.13'); 
     curl_setopt ($ch, CURLOPT_HEADER, 0); 

     ob_start(); 

     curl_exec ($ch); 
     curl_close ($ch); 
     $string = ob_get_contents(); 

     ob_end_clean(); 

     return $string;  

    } 
$myrul = "http://remoteurl.com"; 
$result = get_content($myrul); 

但是,我如何获得响应头?

+0

有藏在某处有问题吗? –

+0

我假设它是“我怎么看到'curl_exec()'函数返回的头文件?” – Crontab

回答

3

如果我的上述评论是正确的,变化:

curl_setopt($ch, CURLOPT_HEADER, 0); 

到:

curl_setopt($ch, CURLOPT_HEADER, 1); 

和解析返回的头了,但是你认为合适的。请注意,只是改变了上面的函数将返回两个头内容,所以如果你想头返回:

function http_head_curl($url,$timeout=10) 
{ 
    $ch = curl_init(); 
    curl_setopt($ch, CURLOPT_URL, $url); 
    curl_setopt($ch, CURLOPT_TIMEOUT, $timeout); // in seconds 
    curl_setopt($ch, CURLOPT_HEADER, 1); 
    curl_setopt($ch, CURLOPT_NOBODY, 1); 
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
    $res = curl_exec($ch); 
    if ($res === false) { 
     throw new RuntimeException("cURL exception: ".curl_errno($ch).": ".curl_error($ch)); 
    } 
    return trim($res); 
}