BOARD

문제 해결

PHP 파일 인코딩(BOM)으로 인한 레이아웃 여백 및 헤더 오류 해결 방법

페이지 정보

profile_image
작성자 최고관리자
댓글 0건 조회 0회 작성일 26-09-12 22:33

본문

문제 증상

웹 페이지 상단에 의도하지 않은 공백이나 여백이 발생하거나, 서버 이전 후 Warning: Cannot modify header information - headers already sent by...와 같은 오류 메시지가 나타나는 경우가 있습니다. 이는 주로 PHP 파일의 인코딩 설정이나 파일 시작 부분의 보이지 않는 공백 때문에 발생합니다.

원인

가장 흔한 원인은 파일을 저장할 때 UTF-8 + BOM 인코딩을 사용했기 때문입니다. BOM(Byte Order Mark)은 텍스트 파일의 인코딩을 식별하기 위한 문자인데, PHP 파일에서는 이를 실제 출력으로 인식하여 헤더가 전송되기 전에 공백을 먼저 출력해버리는 문제가 생깁니다. 특히 윈도우 기본 메모장으로 파일을 수정하면 자동으로 BOM이 포함되는 경우가 많습니다.

해결 방법

작업 전 반드시 문제가 발생한 원본 파일을 백업해 두시기 바랍니다.

  1. 전문 에디터 사용: 윈도우 기본 메모장 대신 전문 코드 에디터를 사용하세요.
  2. 인코딩 변경: 파일을 열어 인코딩 설정을 UTF-8(BOM 없음)으로 변경한 뒤 저장합니다.
  3. 공백 제거: PHP 시작 태그(<?php) 앞이나 파일 마지막 닫는 태그(?>) 뒤에 불필요한 공백이나 빈 줄이 있는지 확인하고 제거합니다.
  4. 파일 재생성: 위 방법으로 해결되지 않는다면, 새 파일을 생성하여 기존 코드를 복사해 붙여넣고 저장하는 것이 가장 확실합니다.

적용 예시

아래는 공백이 포함되기 쉬운 PHP 파일의 구조 예시입니다. <?php 태그 앞이나 ?> 태그 뒤에 보이지 않는 공백이 있는지 확인하십시오.

<?php
// 파일 상단 공백 확인
include_once("./_common.php");
?>
<html>
<head>...</head>
<body>...</body>
</html>

적용 후 점검 및 복구

수정된 파일을 서버에 업로드한 후 웹 페이지를 새로고침하여 상단 여백이 사라졌는지, 그리고 오류 메시지가 더 이상 출력되지 않는지 확인합니다.

복구 방법: 만약 문제가 지속되거나 사이트가 정상적으로 출력되지 않는다면, 작업 전 생성해둔 백업 파일을 서버에 다시 업로드하여 원상태로 복구하십시오.

댓글목록

등록된 댓글이 없습니다.