php教程 PHP开发 함수 헤더--페이지 이동

함수 헤더--페이지 이동

Dec 20, 2016 am 10:26 AM

함수 헤더 기능:
페이지 점프

http 헤더 정보
헤더 정보에는 많은 기능이 있으며 그 중 가장 중요한 기능은 다음과 같습니다.
1. 점프
이후 브라우저는 헤더 정보에서 Location: xxxx를 수신하고 xxxx가 가리키는 URL 주소로 자동으로 이동합니다. 이는 js에서 점프를 작성하는 것과 다소 유사합니다. 하지만 이 점프는 브라우저에서만 알 수 있고, 콘텐츠에 내용이 있든 없든 사용자는 볼 수 없습니다.
예: header("위치: http://www.example.com/");

2. 웹페이지 내용 지정
헤더 정보가 동일한 경우 동일한 XML 파일 지정: Content -type: application/xml, 브라우저는 XML 파일 형식에 따라 이를 구문 분석합니다. 그러나 헤더 정보가 Content-type: text/xml인 경우 브라우저는 이를 저장된 텍스트로 구문 분석합니다. (브라우저는 확장자에 따라 파일을 구문 분석하지 않습니다.)
예: header('Content-type: application/pdf')

3. 첨부 파일
눈치채셨는지 모르겠습니다. 가끔 일부 웹사이트에서 무언가를 다운로드하고 다운로드 링크를 클릭한 후 브라우저에서 첨부 파일을 웹 페이지로 열었고 표시되는 모든 내용이 헤더 정보와 관련이 있습니다. 때로는 브라우저가 Content-type을 기준으로 열거나 저장할지 여부를 결정하므로 때로는 잘못된 판단을 내리기도 합니다(주로 웹 사이트 디자이너가 Content-type 작성을 잊어버렸기 때문). 실제로 콘텐츠가 첨부 파일이고 저장되어야 함을 지정하는 또 다른 방법이 있습니다. Content-Disposition: filename="xxxxx"
예: header('Content-Disposition: attachment; filename ="downloaded.pdf "');
//파일을 열어 출력
readfile('original.pdf');

HTTP 프로토콜 상태 코드
1×× 예약됨
2×× representation 요청이 성공적으로 수신되었습니다
3×× 요청을 완료하려면 클라이언트가 요청을 더 구체화해야 합니다
4×× 클라이언트 오류
5×× 서버 오류

구문:
헤더(문자열, 교체,http_response_code)
매개변수
문자열: 필수. 전송할 헤더 문자열을 지정합니다.
교체: 선택 사항. 이 헤더가 이전 헤더를 대체하는지 아니면 두 번째 헤더를 추가하는지 여부를 나타냅니다. 기본값은 true(교체)입니다. false(동일한 유형의 여러 헤더 허용)
http_response_code: 선택사항. HTTP 응답 코드를 지정된 값으로 강제합니다. (PHP 4 이상에서 사용 가능)

예 1:
웹 페이지 리디렉션
header("위치: http://www.example.com/");
exit
?>

예 2:
클라이언트에 저장된 캐시를 사용하는 대신 사용자가 이 페이지를 방문할 때마다 최신 정보를 얻도록 합니다.
//이 페이지의 만료 시간(그리니치 표준시로 표시)을 이미 지나간 날짜라면 브라우저에 알립니다.
header("Expires:Mon,26 Jul 1970 05:00:00 GMT")

//브라우저에게 이 페이지의 마지막 업데이트 날짜(그리니치 표준시로 표시)를 알려줍니다. 현재 날짜의 목적은 브라우저가 최신 정보
header("Last-Modified:".gmdate("D,d M Y H:i:s")."GMT")를 얻도록 하는 것입니다.
//고객에게 최종 브라우저는 캐싱을 사용하지 않는다고 안내합니다.
header("Cache-Control: no-cache, must-revalidate")

//매개변수(이전 서버와 호환됨) , 즉, HTTP1.0 프로토콜과 호환됩니다.
header("Pragma: no-cache")
?>

예 3:
주로 브라우저에 상태 값을 출력합니다. 액세스 제어에 사용
header(' HTTP/1.1 401 Unauthorized');
header('status: 401 Unauthorized')
?>

예제 4:
사용자가 이 페이지에 액세스하지 못하도록 제한하려면 아래와 같이 상태를 404로 설정하여 브라우저에 페이지가 존재하지 않는다고 표시할 수 있습니다.
header('HTTP/1.1 404 Not Found'); header("status: 404 Not Found") / /이런 글은 틀렸습니다
?>

예 5:
숨김 파일 위치
html 태그를 사용하여 일반 파일을 다운로드할 수 있습니다. 파일을 기밀로 유지하고 싶고 다른 사람에게 파일 링크를 알릴 수 없는 경우 헤더 기능을 사용하여 파일을 다운로드할 수 있습니다.

header("콘텐츠 유형: 오디오/mpeg");
header("콘텐츠 처리: 첨부; 파일 이름=filenale");
header("콘텐츠 설명: PHP3 생성 데이터 ");

예시 6:
헤더 함수 앞에 내용을 입력하세요

일반적으로 html 콘텐츠는 헤더 함수 앞에 출력할 수 없습니다. 유사한 내용으로는 setcookie() 및 세션 함수가 있습니다. 함수는 출력 스트림에 메시지 헤더 정보를 추가해야 합니다. header()가 실행되기 전에 echo와 같은 문이 있는 경우 나중에 header()를 만나면 "경고: 헤더 정보를 수정할 수 없습니다. 헤더는 이미 ....에서 전송되었습니다."라는 오류가 보고됩니다. 즉, 이들 함수 앞에는 텍스트, 빈 줄, 캐리지 리턴 등이 있어서는 안 되며, header() 함수 뒤에 exit() 함수를 추가하는 것이 가장 좋습니다. 예를 들어, 다음과 같은 잘못된 작성에서는 두 개의 PHP 코드 조각 사이에 빈 줄이 있습니다:

//여기에 일부 코드
?>
//여기에 빈 줄이 있어야 합니다
header("http/1.1 403 Forbidden");
exit();
?>
원인:
PHP 스크립트가 실행을 시작하면 http 메시지 헤더(제목)를 보낼 수 있습니다. ) 정보와 본문 정보를 동시에 제공합니다. http 메시지 헤더(header() 또는 SetCookie() 함수에서)는 즉시 전송되지 않고 목록에 저장됩니다. 그러나 스크립트가 헤더가 아닌 출력(예: HTML 또는 print() 호출 사용)을 보내면 PHP는 먼저 모든 헤더를 보낸 다음 종료해야 합니다. HTTP 헤더를 입력한 후 계속해서 본문 데이터를 보냅니다. 이 시점부터 헤더 정보를 추가하거나 수정하려는 시도는 허용되지 않으며 위의 오류 메시지 중 하나가 전송됩니다.

해결책:
php.ini를 수정하여 캐싱(output_buffering)을 활성화하거나 프로그램에서 캐싱 함수 ob_start(), ob_end_flush() 등을 사용하세요. 원칙은 다음과 같습니다. output_buffering이 활성화되면 스크립트가 출력을 보낼 때 PHP는 HTTP 헤더를 보내지 않습니다. 대신, 이 출력을 동적으로 증가하는 캐시로 연결합니다(중앙 집중식 출력 메커니즘이 있는 PHP 4.0에서만 사용 가능). 헤더는 실제로 전송되지 않으므로 헤더를 수정/추가하거나 쿠키를 설정할 수 있습니다. 모든 스크립트가 종료되면 PHP는 자동으로 HTTP 헤더를 브라우저에 보낸 다음 출력 버퍼의 내용을 보냅니다.



더 많은 기능 헤더-페이지 이동에 대해서는 PHP 중국어 웹사이트에서 관련 기사를 주목해주세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25 : Myrise에서 모든 것을 잠금 해제하는 방법
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)