curl_escape în PHP

cURL și email PHP 5.5+

Codează un text pentru URL folosind libcurl (spațiul devine %20), la fel ca rawurlencode.

Sintaxă
curl_escape(CurlHandle $handle, string $string): string|false

Ce face curl_escape

curl_escape codează după RFC 3986, cu rezultat identic cu rawurlencode pentru textele obișnuite. Are nevoie de o cerere cURL, deși nu o folosește pentru trimitere.

În cod PHP obișnuit, rawurlencode sau http_build_query sunt mai simple.

Parametri

Parametru Descriere
$handle O cerere cURL oarecare.
$string Textul codat.

Ce returnează

Textul codat, sau false la eroare.

Exemple

Exemplul 1: Comparație cu rawurlencode

<?php
$ch = curl_init();
$text = "cafea & ceai/Iași?";

echo curl_escape($ch, $text) . "\n";
var_dump(curl_escape($ch, $text) === rawurlencode($text));

Rezultat

cafea%20%26%20ceai%2FIa%C8%99i%3F
bool(true)

Greșeli frecvente

  • Codezi tot URL-ul. Se codează și : și /, iar adresa se strică. Codează doar valorile.

Comenzi înrudite

  • curl_unescape: Decodează secvențele %XX dintr-un text, folosind libcurl. Semnul + rămâne neschimbat, ca la rawurldecode.
  • rawurlencode / rawurldecode: Codează un text pentru URL după standardul RFC 3986: spațiul devine %20. Se folosește pentru bucățile din calea adresei.
  • http_build_query: Transformă un tablou în textul de interogare al unui URL (a=1&b=2), cu toate valorile codate corect.