PHP 8.3.4 Released!

iconv_mime_decode_headers

(PHP 5, PHP 7, PHP 8)

iconv_mime_decode_headersDecodifica vários campos de cabeçalho MIME de uma só vez

Descrição

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

Decodifica vários campos de cabeçalho MIME de uma só vez.

Parâmetros

headers

Os cabeçalhos codificados como uma string.

mode

mode determina o comportamento no caso de iconv_mime_decode_headers() encontrar um campo de cabeçalho MIME malformado. Você pode especificar qualquer combinação das seguintes máscaras de bits.

Máscaras de bits aceitáveis para iconv_mime_decode_headers()
Valor Constante Descrição
1 ICONV_MIME_DECODE_STRICT Se definido, o cabeçalho fornecido é decodificado em total conformidade com os padrões definidos em » RFC2047. Esta opção está desativada por padrão porque há muitos agentes de usuário de e-mail quebrados que não seguem a especificação e não produzem cabeçalhos MIME corretos.
2 ICONV_MIME_DECODE_CONTINUE_ON_ERROR Se definido, iconv_mime_decode_headers() tenta ignorar quaisquer erros gramaticais e continuar a processar um determinado cabeçalho.

encoding

O parâmetro opcional encoding especifica o conjunto de caracteres pelo qual representar o resultado. Se omitido ou null, iconv.internal_encoding será usado.

Valor Retornado

Retorna uma matriz associativa que contém todo um conjunto de campos de cabeçalho MIME especificados por headers em caso de sucesso ou false se ocorrer um erro durante a decodificação.

Cada chave do valor de retorno representa um nome de campo individual e o elemento correspondente representa um valor de campo. Se mais de um campo com o mesmo nome estiver presente, iconv_mime_decode_headers() os incorporará automaticamente em uma matriz indexada numericamente na ordem de ocorrência. Observe que os nomes de cabeçalhos não são case-insensitive.

Registro de Alterações

Versão Descrição
8.0.0 encoding é anulável agora.

Exemplos

Exemplo #1 Exemplo 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);
?>

O exemplo acima produzirá:

Array
(
    [Subject] => Prüfung Prüfung
    [To] => example@example.com
    [Date] => Thu, 1 Jan 1970 00:00:00 +0000
    [Message-Id] => <example@example.com>
    [Received] => Array
        (
            [0] => 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)
            [1] => (qmail 0 invoked by uid 65534); 1 Thu 2003 00:00:00 +0000
        )

)

Veja Também

add a note

User Contributed Notes 1 note

up
0
TheConstructor
13 years ago
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: 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");

$headers = array_combine(array_map("strtolower", array_keys($headers)), array_values($headers));

print_r($headers);
?>
To Top