<전체 PHP의 HTTP 참조
정의 및 사용
header() 함수는 클라이언트에 원시 HTTP 헤더를 보냅니다.
그주의하는 것이 중요하다 header() (이 문제를 해결하기 위해 출력 버퍼링을 사용하여, PHP 4 년 이상) 실제 출력이 전송되기 전에 호출해야합니다 :
<html>
<?php
// This results in an error.
// The output above is before the header() call
header('Location: http://www.example.com/');
?>
통사론
header(string,replace,http_response_code)
매개 변수 | 기술 |
---|---|
string | 필요합니다. 보낼 헤더 문자열을 지정합니다 |
replace | 선택 과목. 헤더가 이전 대체 또는 두 번째 헤더를 추가할지 여부를 나타냅니다. 기본값은 TRUE입니다 (will replace) . FALSE (allows multiple headers of the same type) |
http_response_code | 선택 과목. 지정된 값으로 HTTP 응답 코드 강제 (available in PHP 4.3 and higher) |
팁과주의 사항
Note: 이 기능을 한 번에 전송 될 하나 이상의 헤더를 방지 PHP 4.4입니다. 이것은 헤더 인젝션 공격에 대한 보호이다.
예 1
페이지 캐싱 방지 :
<?php
// Date in the past
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Cache-Control: no-cache");
header("Pragma: no-cache");
?>
<html>
<body>
...
...
Note: 사용자가 브라우저의 기본 캐시 설정을 변경 설정할 수 있습니다 옵션이 있습니다. 위의 헤더를 전송함으로써, 당신은 그 설정을 오버라이드 (override) 및 캐시하지 않도록 브라우저를 강제로!
예 2
사용자가 생성 된 PDF 파일을 저장하라는 메시지가하자 (내용 - 처리 헤더는 저장 대화 상자 권장 파일 이름을 제공하고 표시 할 브라우저를 강제하는 데 사용됩니다)
<?php
header("Content-type:application/pdf");
// It will be called downloaded.pdf
header("Content-Disposition:attachment;filename='downloaded.pdf'");
// The PDF source is in original.pdf
readfile("original.pdf");
?>
<html>
<body>
...
...
Note: 인해 작동하지 마이크로 소프트 IE 5.5에서 문제가있다. 버그는 서비스 팩 2 이상으로 업그레이드하여 해결할 수 있습니다.
<전체 PHP의 HTTP 참조