Just in case this catches anyone else: If your headers string has any leading linebreaks, this function will reject it and return an empty array. If that might apply to your input, sanitise it with ltrim().
Trailing empty lines are tolerated/ignored.
Other quirks I noticed just now:
1. Leading whitespace (" " or "\t") in the *first* line will be included in the header's key name in the returned array. ltrim() will prevent that too.
2. Leading whitespace in any subsequent header (before the key) will cause that line to be appended to the preceding header's value, as though it were a run-on of that header.iconv_mime_decode_headers
Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.
iconv_mime_decode_headers
Референца за `function.iconv-mime-decode-headers.php` со подобрена типографија и навигација.
iconv_mime_decode_headers
класата mysqli_driver
iconv_mime_decode_headers — Декодира повеќе MIME полиња за заглавие одеднаш
= NULL
Декодира повеќе MIME полиња за заглавие одеднаш.
Параметри
headers-
Кодираните заглавија, како стринг.
mode-
modeја одредува однесувањето во случај iconv_mime_decode_headers() најде невалидноMIMEполе за заглавие. Можете да специфицирате каква било комбинација од следниве битни маски.Бит маски прифатливи за iconv_mime_decode_headers() Име (константа) Константа = NULL 1 ICONV_MIME_DECODE_STRICT Ако е поставено, даденото заглавие се декодира во целосна согласност со стандардите дефинирани во Низа кодирана со MIME. Методот на кодирање MIME и спецификацијата UTF-8 се опишани во. Оваа опција е оневозможена по дифолт бидејќи има многу скршени агенти за пошта што не ја следат спецификацијата и не произведуваат правилни MIMEheaders.2 ICONV_MIME_DECODE_CONTINUE_ON_ERROR Ако е поставено, iconv_mime_decode_headers() се обидува да игнорира какви било граматички грешки и да продолжи со обработката на дадено заглавие. encoding-
Опционалниот
encodingпараметарот ја специфицира кодната страница за претставување на резултатот. Ако е изоставен илиnull, iconv.internal_encoding ќе се користи.
Вратени вредности
Враќа асоцијативен низ кој држи цел сет на
MIME полиња за заглавие специфицирани од
headers при успех, или false
ако се случи грешка при декодирањето.
Секој клуч на вратената вредност претставува индивидуално име на поле и соодветниот елемент претставува вредност на полето. Ако се присутни повеќе од едно поле со исто име, iconv_mime_decode_headers() автоматски ги вклучува во нумерички индексиран низ по редослед на појавување. Имајте предвид дека имињата на заглавијата не се case-insensitive.
Дневник на промени
| Верзија | = NULL |
|---|---|
| 8.0.0 |
encoding сега е null.
|
Примери
Пример #1 iconv_mime_decode_headers() example
<?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_string, 0, "ISO-8859-1");
print_r($headers);
?>Пример #1 Пример што покажува затворачка ознака што го опфаќа последниот нов ред
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
)
)
Види Исто така
- iconv_mime_decode() - Декодира MIME поле за заглавие
- mb_decode_mimeheader() - Декодирај низа во MIME поле за заглавие
- imap_mime_header_decode() Враќа декодирана низа, ако е можно конвертирана во UTF-8.
- imap_base64() - Декодирај MIME елементи на заглавјето
- imap_qprint() - Декодирај BASE64 кодиран текст
Белешки од корисници 2 забелешки
If you need lower-case header-names (as I read the documentation case is not guranteed) try something like
<?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_string, 0, "ISO-8859-1");
$headers = array_combine(array_map("strtolower", array_keys($headers)), array_values($headers));
print_r($headers);
?>