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()