P粉4398045142023-07-31 09:13:23
이 문제를 해결하기 위해 수행할 수 있는 작업은 다음과 같습니다.
지정된 줄 확인: 경고 메시지에는 /some/file.php의 12번째 줄에서 출력이 시작되고 해당 줄에서 헤더 정보를 수정하려고 한다는 내용이 표시됩니다. 23. 다음 줄로 이동하여 23번 줄의 header() 함수 호출 앞에 공백, 에코, 인쇄, HTML 또는 기타 출력이 없는지 확인하세요.
모든 선행 공백 제거: 현재 파일 앞에 PHP 파일이 포함되거나 필요한 경우(예: include 또는 require 사용), 해당 파일의 여는 <?php 태그 앞에 선행 공백이 없는지 확인하세요. PHP 태그 외부의 공백은 출력으로 간주되어 이 경고가 발생할 수 있습니다.
닫는 PHP 태그 피하기: PHP 코드만 포함하는(HTML 없음) PHP 파일에서는 일반적으로 파일 끝에 닫는 PHP 태그(?>)를 생략하는 것이 좋습니다. 이렇게 하면 닫는 태그 뒤에 예기치 않은 공백이나 문자가 없어 출력이 트리거되는 것을 방지할 수 있습니다.
출력 버퍼링 사용: header() 호출 전에 피할 수 없는 출력이 있는 경우(예: 라이브러리 종속성 또는 조건문으로 인해) 출력 버퍼링을 사용하여 출력을 캡처하고 출력이 브라우저로 즉시 전송되지 않도록 할 수 있습니다. PHP 스크립트 시작 부분에서 ob_start()를 사용하여 출력 버퍼링을 시작하고, ob_end_flush() 또는 ob_end_clean()을 사용하여 header() 호출 전에 출력 버퍼링을 종료합니다.
출력 버퍼링 사용 예: