void header ( string string [, bool replace [, int http_response_code]])
header()은 raw HTTP 헤더를 전송하기 위해 사용한다. HTTP 헤더에 관한 자세한 정보는 HTTP/1.1 규격을 할것!!.
file저장시 헤더구분
header("Content-type: text/plain"); // text header("Content-type: text/html"); // html header("Content-type: application/vnd.ms-powerpoint"); // ppt header("Content-type: application/msword"); // doc header("Content-type: application/vnd.ms-excel"); // xls header('Content-type: application/pdf'); // pdf Header("Content-type: file/unknown"); // file header("Content-Type: doesn/matter"); header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); // Date in the past header("Last-Modified: " . gmdate("D, d M Y H:i ") . " GMT"); // always modified header("Cache-Control: no-store, no-cache, must-revalidate"); // HTTP/1.1 페이지내용을 엑셀로 지정시 삭제할것!! header("Cache-Control: post-check=0, pre-check=0", false); header("Content-type: text/html; charset=euc-kr"); // utf-8 header("Content-Disposition: attachment; filename=파일지정"); header("Content-Transfer-Encoding: binary"); header("Content-Description: PHP4 Generated Data");
pdf : MSIE 4.01은 버그로 인해 작동하지 않는다. 해결책은 없다. MSIE 5.5 역시 이를 다루는 부분에 버그가 존재하며, 서비스팩 2 이후로 업그레이드해서 해결할 수 있다.
header("HTTP/1.0 404 Not Found");
/* 아파치에 존재하지 않는 파일들에 대한 요청 */ header("Status: 404 Not Found"); /* PHP3 에서 요청 */
header("Location: url ");
/* 브라우저 리다이렉트, 리다이렉트 되었을경우 이후는 실행되지 않는다.*/
HTTP/1.1은 Location:의 인자로 scheme, hostname, 절대 경로를 포함하는 절대 URI를 요구하고 있지만, 일부 클라이언트는 상대 URI도 받아들인다. 일반적으로 $_SERVER['HTTP_HOST'], $_SERVER['PHP_SELF'], dirname()을 사용하여 상대 경로에서 절대 경로를 만들 수 있다
header("Location: http://".$_SERVER['HTTP_HOST'].dirname($_SERVER['PHP_SELF'])."/".$url); header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); // 과거의 날짜 header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT"); // 항상 변경됨 header("Cache-Control: no-store, no-cache, must-revalidate"); // HTTP/1.1 header("Cache-Control: post-check=0, pre-check=0", false); header("Pragma: no-cache"); // HTTP/1.0
PHP 스크립트는 종종 서버와 클라이언트 브라우저 사이에서 어떠한 프록시, 혹은 클라이언트 브라우가 캐쉬를 해서는 안되는 동적인 내용을 생성한다. 이 헤더로 여러 프록시와 클라이언트에서 캐쉬를 비활성화할 수 있다.
* 페이지가 위의 모든 헤더를 출력하지 않아도 캐쉬가 되지 않을 수는 있다. 사용자는 브라우저의 기본 캐쉬 방침을 바꿀 수 있는 수많은 옵션이 존재한다. 위의 헤더들을 전송해서, 모든 설정을 덮어씌울 필요가 있다. 그렇지 않다면, 스크립트의 출력을 캐쉬할 수도 있다.
* 추가적으로, session_cache_limiter()와 session.cache_limiter 설정으로 세션을 사용할 때 자동적으로 적합한 캐쉬 관련 헤더를 생성할 수 있다.
Header Error
/* 헤더 호출전 출력이 있을 경우 */
PHP 4에서, 전송하기 전까지 브라우저에 대한 모든 출력 오버헤드를 서버 버퍼에 넣는 출력 버퍼링을 사용하여 이 함수를 호출 하기 전에 출력을 보낼 수 있다. 스크립트에서 ob_start()와 ob_end_flush()를 호출하거나, php.ini나 서버 설정 파일에서 output_buffering을 설정해서 이를 사용할 수 있다.
'pe > standard' 카테고리의 다른 글
DOM (Document Object Model) (0) | 2006.09.22 |
---|---|
리퀘스트 헤더 (Request Header) & 리스판스 헤더 (Response Header) (0) | 2006.09.22 |
로그파일의 Format (0) | 2006.09.22 |
출력 버퍼링 (0) | 2006.09.22 |
timestamp (0) | 2006.09.22 |