Ce face base64_encode / base64_decode
Base64 este o codare care transformă date oarecare (imagini, fișiere, texte cu diacritice) într-un text sigur pentru email, JSON, URL-uri sau atribute HTML. Rezultatul este cu aproximativ o treime mai lung decât originalul.
base64_decode face operația inversă. Cu al doilea parametru true (modul strict), returnează false dacă textul conține caractere care nu fac parte din alfabetul Base64.
Base64 nu este criptare. Oricine poate decoda textul. Nu îl folosi pentru a ascunde parole sau date secrete.
Parametri
| Parametru | Descriere |
|---|---|
$string |
Datele de codat. |
Ce returnează
Textul codat Base64. base64_decode returnează datele originale sau false la eroare (în modul strict).
Exemple
Exemplul 1: Codare și decodare
<?php
$cod = base64_encode("Salut, Iași!");
echo $cod . "\n";
echo base64_decode($cod);
Rezultat
U2FsdXQsIElhyJlpIQ==
Salut, Iași!
Exemplul 2: Modul strict
<?php
var_dump(base64_decode("U2FsdXQ=", true));
var_dump(base64_decode("nu este base64!", true));
Rezultat
string(5) "Salut"
bool(false)
Exemplul 3: O imagine pusă direct în HTML
Imaginile mici pot fi incluse în pagină ca data: URI, fără un fișier separat.
<?php
imagepng(imagecreatetruecolor(1, 1), "punct.png");
$src = "data:image/png;base64," . base64_encode(file_get_contents("punct.png"));
echo '<img src="' . substr($src, 0, 40) . '...">';
Rezultat
<img src="data:image/png;base64,iVBORw0KGgoAAAANSU...">
Greșeli frecvente
- Folosești Base64 pentru a „cripta” parole sau date personale. Este doar o codare, reversibilă de oricine.
- Pui Base64 direct într-un URL. Semnele
+,/și=au rol special acolo. Foloseșterawurlencodesau varianta URL-safe:rtrim(strtr(base64_encode($date), "+/", "-_"), "=").
Comenzi înrudite
urlencode / urldecode: Codează un text ca să poată fi pus în siguranță într-un URL, ca valoare a unui parametru (după ?).md5: Calculează amprenta MD5 a unui text: 32 de caractere hexazecimale. Bună pentru sume de control, nu pentru parole.file_get_contents: Citește tot conținutul unui fișier (sau al unei adrese URL) într-un text.