>백엔드 개발 >PHP 튜토리얼 >PHP 헤더 점프에 대한 자세한 분석

PHP 헤더 점프에 대한 자세한 분석

高洛峰
高洛峰원래의
2016-12-20 11:06:091572검색

이 기능은 주로 문자 인코딩이나 페이지 이동을 설정하는 데 사용됩니다. 인코딩 설정에 대해서는 자세히 설명하지 않겠습니다.

예전에는 헤더 점프를 하면 점프하기 전에는 어떤 출력도 엄격히 금지되어 있으면 에러가 난다는 것만 알고 있었는데, 오늘 헤더에 대해 다시 알 수 있게 해주는 글을 봤습니다.

1. 앞에 헤더가 필요합니다. 출력이 없습니다.

하지만 이때 헤더를 다시 사용하면 분명히 잘못된 내용이 출력됩니다. 여기서는 ob의 개념을 활성화했습니다. 즉, 서버는 먼저 관련 출력을 저장하고 출력하기 전에 적절한 기회를 기다립니다. 지금처럼 한 문장을 실행하고 한 문장을 출력하는 대신, 오류가 발생했을 때만 보고할 수 있습니다. 헤더 문을 찾습니다.

구체적인 문장은 다음과 같습니다: ob_start(); ob_end_clean();ob_flush();......

2. ), 시간 내에

을 종료해야 합니다. 그렇지 않으면 계속 실행됩니다. 브라우저 측에 해당 데이터가 표시되지는 않지만 패킷 캡처 분석을 수행하면 다음 명령문도 표시됩니다. 실행. 그리고 브라우저 클라이언트로 전송되지만 브라우저에서 html로 실행되지 않습니다(브라우저가 헤더를 실행하고 리디렉션 작업을 수행함).

따라서 표준 사용 방법은 다음과 같습니다.

ob_start();

.....

if (something ){

ob_end_clean();

header("위치: 귀하의 위치");

exit;

else{

. .........

ob_flush(); //생략 가능

헤더 앞에 출력하고 싶다면 php를 수정하면 됩니다. .ini 파일

output_handler =mb_output_handler

또는 output_handler =on

출력 제어 기능을 사용하면 스크립트에서 데이터의 출력을 자유롭게 제어할 수 있습니다. . 이는 특히 데이터가 출력된 후 파일 헤더를 출력하려는 ​​경우 매우 유용합니다. 출력 제어 기능은 header() 또는 setcookie()를 사용하여 전송된 파일 헤더 정보에는 영향을 미치지 않으며 echo() 및 PHP 코드와 유사한 데이터 블록에만 영향을 미칩니다.



PHP 헤더 점프 상세 분석과 관련된 더 많은 글은 PHP 중국어 홈페이지를 주목해주세요!

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