Computer >> 컴퓨터 >  >> 프로그램 작성 >> PHP

PHP – iconv_mime_decode_headers()를 사용하여 한 번에 여러 MIME 헤더 필드 디코딩


PHP에서 iconv_mime_decode_headers() 함수는 한 번에 여러 MIME 헤더 필드를 디코딩하는 데 사용됩니다. PHP에 내장된 기능입니다.

구문

iconv_mime_decode_headers($str_headers, $int_mode, $str_encoding)

매개변수

iconv_mime_decode_headers() 함수는 세 가지 매개변수를 허용합니다. $headers , $모드$encoding .

  • $headers - $header 매개변수는 인코딩된 헤더에 사용됩니다. 문자열 형식의 매개변수입니다.

  • $모드 - $mode 매개변수는 iconv_mime_decode_headers() 이벤트의 동작을 결정합니다. 변형된 MIME 헤더 필드가 발생합니다. 다음 비트마스크 조합을 사용할 수 있습니다.

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

    • ICONV_MIME_DECODE_STRICT
    • ICONV_MIME_DECODE_CONTINUE_ON_ERROR
    • ICONV_MIME_DECODE_STRICT - iconv_mime_decode_strict 가 설정되면 주어진 헤더가 완벽하게 디코딩되지만 요구 사항을 따르지 않고 올바른 MIME 헤더를 생성하지 않는 많은 깨진 메일 사용자 에이전트로 인해 이 옵션은 기본적으로 비활성화되어 있습니다.
    • ICONV_MIME_DECODE_CONTINUE_ON_ERROR - iconv_mime_decode_continue_on_error() 매개변수가 설정되면 문법 오류를 무시하려고 시도하고 주어진 헤더를 계속 처리합니다.
  • $인코딩 - 인코딩은 결과를 나타내는 문자 집합을 지정하는 데 사용되는 선택적 매개변수입니다. 생략하거나 null인 경우 iconv.internal_encoding이 사용됩니다.

반환 값

iconv_mime_decode_headers() 함수는 성공 시 헤더로 지정된 전체 MIME 헤더 필드 세트를 보유하는 연관 배열을 반환하거나 디코딩 중에 오류가 발생하면 False를 반환합니다.

예시 1

<pre>
   <?php
      $str_headers = <<<EOF
      Subject: =?UTF-8?B?UHLDvGZ1bmcgUHLDvGZ1bmc=?=
      To: [email protected]
      Date: Mon, 21 Jun 2021 00:00:00 +0000
      Message-Id: <[email protected]>
      Received: from localhost (localhost [127.0.0.1]) by localhost
         with SMTP id xyz for <[email protected]>;
         Mon, 21 Jun 2021 00:00:00 +0000 (UTC)
         (envelope-from [email protected])
      Received: (qmail 0 invoked by uid 65534); 21 Mon 2005 00:00:00 +0000
      EOF;
      $headers = iconv_mime_decode_headers($str_headers, 0, "ISO-8859-1");
      print_r($headers);
   ?>
</pre>

출력

Array
(
   [Subject] => Pr�fung Pr�fung
   [To] => [email protected]
   [Date] => Mon, 21 Jun 2021 00:00:00 +0000
   [Message-Id] =>
   [Received] => Array
      (
         [0] => from localhost (localhost [127.0.0.1]) by localhost with SMTP id xyz for ; Mon, 21 Jun 2021 00:00:00 +0000 (UTC) (envelope-from [email protected])
         [1] => (qmail 0 invoked by uid 65534); 21 Mon 2005 00:00:00 +0000
      )
)