Ce face rawurlencode / rawurldecode
rawurlencode seamănă cu urlencode, cu o diferență: spațiul devine %20, nu +. Asta corespunde standardului RFC 3986 pentru URL-uri.
Regula practică: folosește rawurlencode pentru bucăți din calea adresei (de exemplu un nume de fișier: /fisiere/raport%20anual.pdf) și urlencode pentru valorile parametrilor din formulare. rawurldecode face operația inversă și lasă semnul + neschimbat.
Parametri
| Parametru | Descriere |
|---|---|
$string |
Textul de codat (sau de decodat, la rawurldecode). |
Ce returnează
Textul codat, respectiv decodat.
Exemple
Exemplul 1: Diferența față de urlencode
<?php
$text = "cafea & ceai";
echo urlencode($text) . "\n";
echo rawurlencode($text);
Rezultat
cafea+%26+ceai
cafea%20%26%20ceai
Exemplul 2: Link către un fișier cu spații în nume
<?php
$fisier = "raport anual 2026.pdf";
echo "https://www.dexblog.ro/fisiere/" . rawurlencode($fisier);
Rezultat
https://www.dexblog.ro/fisiere/raport%20anual%202026.pdf
Exemplul 3: Decodarea: + rămâne +
<?php
echo rawurldecode("a+b%20c") . "\n";
echo urldecode("a+b%20c");
Rezultat
a+b c
a b c
Greșeli frecvente
- Codezi toată calea cu
rawurlencodeși separatorii/devin%2F. Codează fiecare bucată separat, apoi unește-le cu/.
Comenzi înrudite
urlencode / urldecode: Codează un text ca să poată fi pus în siguranță într-un URL, ca valoare a unui parametru (după ?).http_build_query: Transformă un tablou în textul de interogare al unui URL (a=1&b=2), cu toate valorile codate corect.parse_url: Împarte un URL în componente: protocol, domeniu, port, cale, interogare și fragment.