一次性解碼多個 MIME 頭欄位

iconv_mime_decode_headers

(PHP 5, PHP 7, PHP 8)

iconv_mime_decode_headers一次性解碼多個 MIME 頭欄位

說明

iconv_mime_decode_headers(string $encoded_headers, int $mode = 0, string $charset = ini_get("iconv.internal_encoding")): array

一次性解碼多個 MIME 頭欄位。

參數

encoded_headers

編碼過的頭,是一個字串。

mode

mode 決定了 iconv_mime_decode_headers() 遇到畸形 MIME 頭欄位時的行為。 你可以指定為以下位掩碼的任意組合。

iconv_mime_decode_headers() 接受的位掩碼
常量 描述
1 ICONV_MIME_DECODE_STRICT 如果設定了,給定的頭將會以 » RFC2047 定義的標準完全一致。 這個選項預設禁用,因為大量有問題的郵件使用者代理不遵循標準併產生不正確的 MIME 頭。
2 ICONV_MIME_DECODE_CONTINUE_ON_ERROR 如果設定了,iconv_mime_decode_headers() 嘗試忽略任何語法錯誤並繼續處理指定的頭。

charset

可選參數 charset 指定了字符集結果的表現。 如果省略了,將使用 iconv.internal_encoding

返回值

成功時返回 encoded_headers 指定的 MIME 頭的整套關聯陣列,解碼時出現錯誤則返回 false

返回元素的每個鍵代表獨立欄位名,相應的元素代表一個欄位值。 如果有多個同一名稱的欄位, iconv_mime_decode_headers() 自動將他們按出現順序結合成數字索引的陣列。

範例

示例 #1 iconv_mime_decode_headers() 例子

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

EOF;

$headers =  iconv_mime_decode_headers($headers_string0"ISO-8859-1");
print_r($headers);
?>

以上例程會輸出:

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

)

參見

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *