PHP
 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() 関数は3つの異なるパラメーターを受け入れます-$headers $ mode および$encoding

  • $ headers − $ headerパラメーターは、エンコードされたヘッダーに使用されます。文字列型のパラメータです。

  • $ mode − $ 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()の場合 パラメータが設定されている場合、文法エラーを無視しようとし、指定されたヘッダーの処理を続行します。
  • $ encoding −エンコーディングは、結果を表す文字セットを指定するために使用されるオプションのパラメータです。 iconv.internal_encodingは、省略またはnullの場合に使用されます。

戻り値

iconv_mime_decode_headers() 関数は、成功時にヘッダーで指定されたMIMEヘッダーフィールドのセット全体を保持する連想配列を返します。デコード中にエラーが発生した場合はFalseを返します。

例1

<pre>
   <?php
      $str_headers = <<<EOF
      Subject: =?UTF-8?B?UHLDvGZ1bmcgUHLDvGZ1bmc=?=
      To: xyz@example.com
      Date: Mon, 21 Jun 2021 00:00:00 +0000
      Message-Id: <xyz@example.com>
      Received: from localhost (localhost [127.0.0.1]) by localhost
         with SMTP id xyz for <xyz@example.com>;
         Mon, 21 Jun 2021 00:00:00 +0000 (UTC)
         (envelope-from example-return-0000-xyz=xyz.com@example.com)
      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] => xyz@example.com
   [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 example-return-0000-xyz=xyz.com@example.com)
         [1] => (qmail 0 invoked by uid 65534); 21 Mon 2005 00:00:00 +0000
      )
)

  1. PHPのheader()関数

    header()関数は、生のHTTPヘッダーをクライアントに送信します。 構文 header(string,replace,resp_code) パラメータ 文字列 −送信するヘッダー文字列。 交換 −ヘッダーが前のヘッダーを置き換えるか、2番目のヘッダーを追加するかを示します。 resp_code −HTTP応答コードを指定された値に強制します 戻る header()関数は何も返しません。 例 以下は、生成されたPDFを保存する例です- <?php    header("Content-type:application/pdf

  2. Pythonを使用してMIMEquoted-printableデータをエンコードおよびデコードします

    多くの場合、通常のASCII文字が常に含まれているとは限らないデータを処理する必要があります。たとえば、英語以外の別の言語の電子メール。 Pythonには、MIME(Multipurpose Internet Mail Extensions)ベースのモジュールを使用してこのような文字を処理するメカニズムがあります。この記事では、そのような文字を電子メールやその他の入力でデコードする方法を説明します。 メールパッケージの使用 電子メールパッケージには、以下の例に示すように、エンコードとデコードの作業を実行できるmimeとcharsetというモジュールが含まれています。 Unicode文字を含む