iconv_mime_decode_headers 함수

(PHP 5, PHP 7, PHP 8)

iconv_mime_decode_headers — 한 번에 여러 MIME 헤더 필드 디코딩


설명

iconv_mime_decode_headers(string $headers, int $mode = 0, ?string $encoding = null): array|false

한 번에 여러 MIME 헤더 필드를 디코딩합니다.


매개변수

headers
인코딩된 헤더(문자열).
mode
modeiconv_mime_decode_headers()가 잘못된 MIME 헤더 필드를 만나는 이벤트의 동작을 결정합니다. 다음 비트마스크 조합을 지정할 수 있습니다.

iconv_mime_decode_headers()에 허용되는 비트마스크

Value 상수 설명
1 ICONV_MIME_DECODE_STRICT 설정된 경우 지정된 헤더는 » RFC2047에 정의된 표준을 완전히 준수하여 디코딩됩니다. 사양을 따르지 않고 올바른 MIME 헤더를 생성하지 않는 깨진 메일 사용자 에이전트가 많기 때문에 이 옵션은 기본적으로 비활성화되어 있습니다.
2 ICONV_MIME_DECODE_CONTINUE_ON_ERROR 설정된 경우 iconv_mime_decode_headers()는 문법 오류를 무시하고 지정된 헤더를 계속 처리하려고 시도합니다.
encoding
선택적 encoding 매개변수는 결과를 나타내는 문자 세트를 지정합니다. 생략하거나 null이면 iconv.internal_encoding이 사용됩니다.

반환 값

성공하면 headers에 의해 지정된 MIME 헤더 필드의 전체 세트를 보유하는 연관 배열을 리턴하고, 디코딩 중에 오류가 발생하면 false를 리턴합니다.

반환 값의 각 키는 개별 필드 이름을 나타내고 해당 요소는 필드 값을 나타냅니다. 동일한 이름의 필드가 두 개 이상 있는 경우 iconv_mime_decode_headers()는 자동으로 해당 필드를 발생 순서대로 숫자 인덱스 배열에 통합합니다. 헤더 이름은 대소문자를 구분하지 않습니다.


변경 로그

버전 설명
8.0.0 encoding은 이제 nullable입니다.

Examples

예제 #1 iconv_mime_decode_headers() 예제

                  
<?php
$headers_string = <<<EOF
Subject: =?UTF-8?B?UHLDvGZ1bmcgUHLDvGZ1bmc=?=
To: example@example.com
Date: Thu, 1 Jan 1970 00:00:00 +0000
Message-Id: <example@example.com>
Received: from localhost (localhost [127.0.0.1]) by localhost
    with SMTP id example for <example@example.com>;
    Thu, 1 Jan 1970 00:00:00 +0000 (UTC)
    (envelope-from example-return-0000-example=example.com@example.com)
Received: (qmail 0 invoked by uid 65534); 1 Thu 2003 00:00:00 +0000

EOF;

$headers =  iconv_mime_decode_headers($headers_string, 0, "ISO-8859-1");
print_r($headers);
?>
                  
                

위의 예는 다음을 출력합니다.

Array
(
    [Subject] => Prüfung Prüfung
    [To] => example@example.com
    [Date] => Thu, 1 Jan 1970 00:00:00 +0000
    [Message-Id] => 
    [Received] => Array
        (
            [0] => from localhost (localhost [127.0.0.1]) by localhost with SMTP id example for ; Thu, 1 Jan 1970 00:00:00 +0000 (UTC) (envelope-from example-return-0000-example=example.com@example.com)
            [1] => (qmail 0 invoked by uid 65534); 1 Thu 2003 00:00:00 +0000
        )

)
                

기타