base64_encode

base64_encode($data)

Kodiert beliebige Daten (Text oder binären Inhalt) als Text, der nur aus Buchstaben, Ziffern und den Zeichen + / = besteht. Man braucht sie überall, wo binäre Daten als Text übertragen werden müssen: in E-Mails, in JSON oder direkt in einer Seite.

Parameter

  • $data – die zu kodierenden Daten.

Beispiele

echo base64_encode("Hello"); // SGVsbG8=
echo base64_encode("café"); // Y2Fmw6k=
// das Ergebnis ist um ein Drittel länger
echo strlen(base64_encode(str_repeat("a", 300))); // 400
// die Länge ist immer ein Vielfaches von vier, aufgefüllt mit =
echo base64_encode("a"); // YQ==
echo base64_encode("ab"); // YWI=
echo base64_encode("abc"); // YWJj
// der Header für die HTTP-Basic-Anmeldung
echo "Authorization: Basic " . base64_encode("user:password"); // Authorization: Basic dXNlcjpwYXNzd29yZA==
// die Variante für URLs und Dateinamen: - und _ statt + und /, ohne =
echo base64_encode("\xFB\xFF\xFE"); // +//+
echo rtrim(strtr(base64_encode("\xFB\xFF\xFE"), "+/", "-_"), "="); // -__-
// Zeilen mit 76 Zeichen für E-Mails
echo strlen(chunk_split(base64_encode(str_repeat("a", 57)))); // 78

Worauf Sie achten sollten

  • Es ist keine Verschlüsselung. Jeder wandelt das Ergebnis mit einem einzigen Aufruf von base64_decode() zurück. Passwörter oder andere Geheimnisse „versteckt“ es nicht.
  • Das Ergebnis ist um ein Drittel größer als die ursprünglichen Daten. Große Dateien senden Sie besser als Dateien.
  • Die Zeichen + und / haben in einer URL eine besondere Bedeutung, ebenso =. Für eine URL oder einen Dateinamen verwenden Sie die Variante aus dem Beispiel (oft base64url genannt), oder kodieren Sie das Ergebnis mit rawurlencode().
  • Ein Bild, das als data:image/png;base64,… in die Seite eingebettet ist, speichert der Browser nicht separat im Cache. Es lohnt sich nur bei kleinen Bildern.

Verwandte Funktionen:
base64_decode()
bin2hex()
chunk_split()