Programming/PHP

[PHP] CURL 결과에서 HTTP 프로토콜 헤더 바디 분리

DOTI 2025. 3. 6. 11:27
[PHP] CURL 결과에서 HTTP 프로토콜 헤더 바디 분리
반응형

PHP에서의 curl 사용시 결과에서 HTTP 프로토콜의 헤더 부분화 바디 부분을 분리 해야 될 경우 사용하는 방법입니다. 헤더를 얻으려면 CURLOPT_HEADER 이 부분이 반드시 true로 되어 있어야 결과에서 헤더와 바디가 같이 나옵니다.

curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, true);   // HTTP 헤더를 받고 싶을때
curl_setopt($ch, CURLOPT_VERBOSE, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);

$response     = curl_exec($ch);
$http_status  = curl_getinfo($ch, CURLINFO_HTTP_CODE);
$header_size  = curl_getinfo($ch, CURLINFO_HEADER_SIZE);
curl_close($ch);

$header       = substr($response, 0, $header_size);
$body         = substr($response, $header_size);
echo $header . "\\n";

 

위와 같이 결과를 가지고 substr 부분에서 HTTP의 헤더와 바디를 분리 합니다. 간혹 헤더 부분에 중요 정보를 가지고 있는 경우가 있어 별도 파싱하여 사용해야 되는 경우 유용 합니다.

반응형