Dienstag, 8. März 2011

PHP und UTF-8 Umlaute fehler

Es gibt einige unschöne seiteneffeket wenn man bei Php mit UTF-8 konfrontiert wird. Das noch nervigere ist, das der Browser(in meinem Fall Firefox) versucht das Format selbst zu erkennen, d.h. erkennt der Browser eine Ausgabe als UTF-8 wird alles was ISO ist falsch dargestellt und immer umgegkehrt.

Fazit:
Da Php mit UTF-8 probleme hat immer beim bearbeiten von UTF-8 strings die ersatzstrinfunktionen benutzen (mb_strlen etc.) und Ausgaben nicht mixen - sonst Klapse net weit!

Montag, 7. März 2011

PHP: Notice: Unknown: Invalid quoted-printable sequence:

Wenn man versucht eine base64 - codierte mail mit imap_qprint() zu decodieren bekommt man die Fehlermeldung:

Notice: Unknown: Invalid quoted-printable sequence: =_NextPart_???? Content-Type: text/plain; charset="iso-8859-1 (errflg=3) in Unknown on line 0

Wobei ??? für den Delimiter steht. Dies kann abgefangen werden mit:


$parts=explode("base64",$emailstring);
if (1{
$partsa=explode("------",$parts[1]);
$emailstring=base64_decode($partsa[0]);
$emailstring=utf8_decode($emailstring);
}
else
{
$emailstring=imap_qprint($emailstring);//decodieren der nachricht
}

Allerdings wird hier nur der erste Teil der Mime-Mail übersetzt - wahrscheinlich gibt es bessere Lösungen war jedoch die am schnellsten mir eingefallen ist. Eine suche nach PHP Mime base64 ergibt bestimmt noch andere lösungen.

PHP - imap_setflag_full funktioniert nicht

Nach langer suche - man muß bei imap_setflag_full auf die groß und kleinschreibung achten ein Flag \\answered funktioniert nicht nur \\Answered.