rawurlencode / rawurldecode în PHP

URL și HTTP PHP 4+

Codează un text pentru URL după standardul RFC 3986: spațiul devine %20. Se folosește pentru bucățile din calea adresei.

Sintaxă
rawurlencode(string $string): string

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.