이전 글에서 헤더 헤더 정의에 대해 소개했는데, 제목을 보면 궁금해하시는 분들이 많을 텐데요, 원본 HTTP 헤더가 클라이언트로 전송되기 전에 소개하지 않았나요? 이것이 실제로 사실입니까? 오늘은 PHP에서 헤더 함수의 기능이 무엇인지 보여드리겠습니다.
공식 문서의 정의를 먼저 살펴보세요
(PHP 4, PHP 5, PHP 7)
header — 기본 HTTP 헤더 보내기
1 void header ( string $string [, bool $replace = true [, int $http_response_code ]] )
매개변수:
string
스페셜 헤드가 2개 있습니다. "HTTP/"(대소문자는 중요하지 않음)으로 시작하는 첫 번째 코드는 전송될 HTTP 상태 코드를 계산하는 데 사용됩니다. 예를 들어 존재하지 않는 파일에 대한 요청을 처리하기 위해 Apache 서버에서 PHP 스크립트를 사용하는 경우(ErrorDocument 지시어 사용) 스크립트가 올바른 상태 코드로 응답하기를 바랍니다.
1 <?php 2 header("HTTP/1.0 404 Not Found"); 3 ?>
두 번째 특별한 경우는 "Location:" 헤더 정보입니다. 상태 코드가 201 또는 3xx로 미리 설정되어 있지 않은 한, 메시지를 브라우저에 보낼 뿐만 아니라 REDIRECT(302) 상태 코드를 브라우저에 반환합니다.
1 <?php 2 header("Location: http://www.example.com/"); /* Redirect browser */ 3 4 /* Make sure that code below does not get executed when we redirect. */ 5 exit; 6 ?>
<code class="parameter"> <span style="font-family: Microsoft YaHei">replace</span>
可选参数 replace
表明是否用后面的头替换前面相同类型的头。 默认情况下会替换。如果传入 FALSE
,就可以强制使相同的头信息并存。例如:
1 <?php 2 header('WWW-Authenticate: Negotiate'); 3 header('WWW-Authenticate: NTLM', false); 4 ?>
http_response_code
强制指定HTTP响应的值。注意,这个参数只有在报文字符串(string
replace
선택적 매개변수replace
동일한 유형의 이전 헤더를 이후 헤더로 바꿀지 여부입니다. 기본적으로 대체됩니다.
FALSE
를 전달하면 동일한 헤더 정보가 강제로 공존할 수 있습니다. 예: header('Location: http://www.example.com/');
http_response_code
HTTP 응답 값을 강제합니다. 이 매개변수는 string (string< 메시지에서만 사용할 수 있습니다. / 코드>)가 비어 있지 않습니다.
헤더 기능의 일반적인 용도는 다음과 같습니다.
1. 리디렉션
header('Content-type: application/pdf');
header('Content-type: application/pdf');
//指定内容为附件,指定下载显示的名字
header('Content-Disposition: attachment; filename="downloaded.pdf"');
//打开文件,并输出
readfile('original.pdf')
header("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1
header("Expires: Sat, 26 Jul 1997 05:00:00 GMT"); // 设置临界时间
4. 사용자가 캐시 대신 최신 데이터와 데이터를 얻을 수 있도록 합니다. 위 내용은 PHP에서 헤더 함수의 역할 분석의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!