2012-12-13 8 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); 
}