PHP에서 iconv_mime_decode() 함수는 MIME 헤더 필드를 디코딩하는 데 사용되는 내장 함수입니다. 이 함수는 PHP 5 버전부터 제공되며, 인코딩된 MIME 헤더를 사람이 읽을 수 있는 형태로 변환할 때 유용합니다.
문법(Syntax)
String iconv_mime_decode(string $string, int $mode, string $encoding)
매개변수(Parameters)
iconv_mime_decode() 함수는 $string, $mode, $encoding 세 가지 매개변수를 받습니다. 이 중 $string과 $mode는 필수 매개변수이며, $encoding은 선택적 매개변수입니다.
$string − 디코딩할 인코딩된 헤더를 나타내는 매개변수입니다. 문자열(string) 타입의 값이어야 합니다.
$mode − iconv_mime_decode() 함수가 잘못된 형식(malformed)의 MIME 헤더 필드를 만났을 때 어떻게 동작할지를 결정하는 매개변수입니다. 아래 비트마스크(bitmask) 값들을 조합하여 지정할 수 있습니다.
사용 가능한 비트마스크 목록
ICONV_MIME_DECODE_STRICT − 이 옵션이 설정되면 주어진 헤더가 RFC 표준에 완전히 부합하는 방식으로 디코딩됩니다. 다만 기본값은 비활성화되어 있는데, 그 이유는 상당수의 메일 사용자 에이전트(MUA)가 표준 요구 사항을 준수하지 않고 올바른 MIME 헤더를 생성하지 않는 경우가 많기 때문입니다.
ICONV_MIME_DECODE_CONTINUE_ON_ERROR − 이 옵션이 설정되면 문법적인 오류가 있어도 이를 무시하고 주어진 헤더의 처리를 계속 진행합니다.
$encoding − 결과를 표현할 때 사용할 문자 집합(character set)을 지정하는 선택적 매개변수입니다. 생략하거나 null로 지정하면 iconv.internal_encoding 설정값이 대신 사용됩니다.
반환값(Return Values)
iconv_mime_decode() 함수는 디코딩에 성공하면 디코딩된 MIME 필드를 반환하고, 디코딩 과정에서 오류가 발생하면 False를 반환합니다.
예제(Example)
<?php
// "Sub: Preços Olà.txt" 를 출력합니다.
echo iconv_mime_decode("Sub: =?utf-8?B?UHJlw4PCp29zIE9sw4PCoA==?=.txt ",
0, "ISO-8859-1");
?>
출력(Output)
Sub: Preços Olà.txt
위 예제에서 볼 수 있듯이, Base64로 인코딩된 UTF-8 MIME 헤더가 iconv_mime_decode() 함수를 통해 ISO-8859-1 문자 집합으로 변환되어 정상적으로 출력되는 것을 확인할 수 있습니다.