현재 위치: > 최신 기사 목록> PHP 코드에서 BOM 바이트 주문 마크를 제거하는 방법

PHP 코드에서 BOM 바이트 주문 마크를 제거하는 방법

gitbox 2025-06-24

PHP 코드에서 BOM 바이트 주문 마크를 제거하는 방법

PHP 코드에서 BOM (바이트 주문 마커)은 몇 가지 문제를 일으킬 수 있습니다. BOM은 파일의 시작 부분에 여러 바이트 정보를 삽입하는 특수 문자이며 텍스트의 문자 인코딩을 식별하는 데 사용됩니다. PHP 프로젝트에서 BOM의 존재로 인해 브라우저가 갈색 코드 또는 문자열 처리 예외를 출력하게 될 수 있으므로 BOM을 제거하는 방법을 이해하는 것이 중요합니다.

BOM 문제의 영향

PHP 파일에 BOM이 존재하는지 여부를 감지하는 방법

다음 코드를 사용하여 파일에 BOM이 포함되어 있는지 여부를 감지 할 수 있습니다.

 
function hasBom($filename) {
    $file = fopen($filename, "r");
    $bom = fread($file, 3);
    fclose($file);
    return $bom === "\xEF\xBB\xBF";
}
if (hasBom("example.php")) {
    echo "파일에 포함됩니다BOM";
} else {
    echo "파일이 포함되어 있지 않습니다BOM";
}
        

이 코드는 파일의 첫 3 바이트를 읽고 BOM 바이트 시퀀스 "\ xef \ xbb \ xbf"와 일치하는지 확인합니다. 일관성이 있으면 설명 파일에는 BOM이 포함되어 있습니다.

BOM을 제거하는 두 가지 방법

방법 1 : 파일을 재설치하십시오

가장 쉬운 방법은 BOM이 포함 된 파일을 편집기를 통해 새 파일로 저장하는 것입니다. 새 파일에는 BOM 바이트가 포함되지 않습니다.

PHP 코드를 사용하여 파일을 재설치하고 BOM을 제거하는 예입니다.

 
function removeBom($filename) {
    $content = file_get_contents($filename);
    file_put_contents($filename, substr($content, 3));
}
removeBom("example.php");
        

이 코드는 파일 컨텐츠를 읽고 처음 세 바이트 (즉, BOM)를 제거한 다음 수정 된 컨텐츠를 원본 파일에 다시 작성하여 BOM을 제거합니다.

방법 2 : 대체 기능을 사용하십시오

파일을 다시 만드는 것 외에도 PHP의 대체 기능을 통해 BOM을 제거 할 수도 있습니다. 이 방법에서는 문자열에서 BOM을 감지하고 제거하는 함수를 만듭니다.

 
function utf8_encode_bom($string) {
    if (substr($string, 0, 3) == "\xEF\xBB\xBF") {
        return substr($string, 3);
    }
    return $string;
}
$originalString = "Example String with BOM";
$cleanString = utf8_encode_bom($originalString);
echo $cleanString;
        

코드는 먼저 문자열의 첫 3 바이트가 BOM인지 확인합니다. 그렇다면 제거하고 정리 된 문자열을 반환합니다.

요약

PHP에서 BOM 바이트 주문 마커를 제거하는 것은 특히 다른 텍스트 편집기의 PHP 파일을 처리 할 때 일반적인 요구 사항입니다. 파일에 BOM이 포함되어 있는지 여부를 감지하고 파일 또는 대체 함수를 다시 사용하여 BOM을 제거 할 수 있습니다. 어떤 방법에 관계없이, 그것은 garbled 코드의 문제를 효과적으로 해결하고 PHP 코드의 정상적인 실행을 보장 할 수 있습니다.

파일을 처리 할 때는 사고를 방지하기 위해 백업을해야합니다.