Signatur
Beschreibung
imap_base64() dekodiert einen Base64-kodierten String und liefert den ursprünglichen Klartext zurück. Die Funktion ist Teil der IMAP-Erweiterung und wird typischerweise beim Verarbeiten von E-Mail-Inhalten verwendet, da E-Mail-Texte und -Anhänge häufig im Base64-Format kodiert übertragen werden.
Intern verhält sich imap_base64() identisch zu base64_decode(). Sie wurde als Teil der IMAP-Erweiterung eingeführt, um beim Parsen von MIME-Teilen einer E-Mail direkt eingesetzt werden zu können, ohne auf eine separate Funktion wechseln zu müssen.
Die Funktion eignet sich überall dort, wo Base64-kodierte Daten entschlüsselt werden sollen – sei es beim Lesen von E-Mail-Anhängen, eingebetteten Bildern (Inline-Attachments) oder verschlüsselten Headern. Für reine Web-Anwendungen ohne E-Mail-Bezug ist base64_decode() die direktere Wahl.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $string Pflicht | string | Der Base64-kodierte Eingabe-String, der dekodiert werden soll. |
Rückgabewert
Beispiele
Einfaches Dekodieren eines Base64-Strings
<?php
$encoded = 'SGVsbG8gV2VsdCE=';
$decoded = imap_base64($encoded);
echo $decoded;
Dekodieren eines Base64-kodierten E-Mail-Textkörpers
<?php
// Verbindung zum IMAP-Server herstellen
$mailbox = imap_open('{imap.example.com:993/imap/ssl}INBOX', 'user@example.com', 'geheim');
if ($mailbox) {
// Erste E-Mail abrufen
$structure = imap_fetchstructure($mailbox, 1);
$rawBody = imap_fetchbody($mailbox, 1, '1');
// Prüfen ob der Körper Base64-kodiert ist (encoding = 3)
if (isset($structure->parts[0]) && $structure->parts[0]->encoding === 3) {
$decodedBody = imap_base64($rawBody);
echo $decodedBody;
} elseif ($structure->encoding === 3) {
// Einteilige E-Mail
$decodedBody = imap_base64($rawBody);
echo $decodedBody;
}
imap_close($mailbox);
}
// Wichtig · Fallstricke
Sicherheitshinweis: Ausgaben, die aus dekodiertem E-Mail-Inhalt stammen, sollten vor der Anzeige im Browser stets mit htmlspecialchars() oder strip_tags() bereinigt werden, um Cross-Site-Scripting (XSS) zu verhindern.
Hinweis zur Erweiterung: imap_base64() ist funktional identisch mit base64_decode(). Die IMAP-Erweiterung muss beim Kompilieren oder als PHP-Modul aktiviert sein, damit diese Funktion verfügbar ist. Ohne E-Mail-Kontext ist base64_decode() die bevorzugte Alternative, da sie keine externe Erweiterung erfordert.
Ungültige Zeichen im Eingabe-String werden ignoriert – es erfolgt keine Fehlermeldung. Bei kritischen Anwendungen empfiehlt es sich, die Eingabe vorab auf gültige Base64-Zeichen zu prüfen.