Avatar billede morw Nybegynder
18. maj 2003 - 22:49 Der er 1 kommentar og
1 løsning

Parse mail headers

Hvordan tager jeg en string som:

Subject: =?Windows-1252?B?dGVzdCBhZiDlIG1lZCDm+OU=?=

og laver den om til alm 8bit?

Jeg leder efter an class éller funktion der både kan decode base64 og quoted_printable

Går ud fra der er noget der kalder
quoted_printable_decode() og base64_decode
Avatar billede schaefner Juniormester
18. maj 2003 - 22:55 #1
Avatar billede morw Nybegynder
18. maj 2003 - 22:56 #2
Ja tak - jeg kan godt slå en funktion op på php.net

Tror dog jeg har fundet noget: Fra MimeDecode i pear:

    function _decodeHeader($input)
    {
        // Remove white space between encoded-words
        $input = preg_replace('/(=\?[^?]+\?(q|b)\?[^?]*\?=)(\s)+=\?/i', '\1=?', $input);

        // For each encoded-word...
        while (preg_match('/(=\?([^?]+)\?(q|b)\?([^?]*)\?=)/i', $input, $matches)) {

            $encoded  = $matches[1];
            $charset  = $matches[2];
            $encoding = $matches[3];
            $text    = $matches[4];

            switch (strtolower($encoding)) {
                case 'b':
                    $text = base64_decode($text);
                    break;

                case 'q':
                    $text = str_replace('_', ' ', $text);
                    preg_match_all('/=([a-f0-9]{2})/i', $text, $matches);
                    foreach($matches[1] as $value)
                        $text = str_replace('='.$value, chr(hexdec($value)), $text);
                    break;
            }

            $input = str_replace($encoded, $text, $input);
        }

        return $input;
    }
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester