PHP의 header() 함수는 클라이언트(브라우저)에게 원시(raw) HTTP 헤더를 전송하는 데 사용되는 기본 함수입니다. 페이지 리디렉션, 콘텐츠 유형 지정, 파일 다운로드 처리 등 다양한 상황에서 활용됩니다.
문법
header(string, replace, resp_code)
매개변수
string − 전송할 헤더 문자열입니다. 예:
"Content-type:application/pdf"replace − 선택 사항으로, 해당 헤더가 동일한 이름의 이전 헤더를 대체할지(
true, 기본값), 아니면 두 번째 헤더로 추가할지(false) 여부를 나타냅니다.resp_code − 선택 사항으로, HTTP 응답 코드를 지정된 값으로 강제 설정합니다. 예: 404, 301 등
반환 값
header() 함수는 별도의 값을 반환하지 않습니다(void).
예제
다음은 서버에서 생성된 PDF 파일을 사용자에게 다운로드시키는 예제입니다 −
<?php
header("Content-type:application/pdf");
header("Content-Disposition:attachment;filename=output.pdf'");
readfile("demo.pdf");
?>
위 코드에서 입력 파일은 "demo.pdf"이지만, 사용자가 다운로드받게 되는 파일명은 "output.pdf"로 지정됩니다. Content-Disposition 헤더의 attachment 옵션 덕분에 브라우저는 파일을 화면에 표시하지 않고 즉시 다운로드합니다.
참고 사항
header() 함수는 반드시 실제 출력이 발생하기 전에 호출해야 합니다. HTML 태그, 빈 줄, echo 문 등 어떤 출력이라도 이미 전송된 이후에 호출하면 "headers already sent by..." 오류가 발생하므로 주의해야 합니다.