Zend Framework URI spazio codifica in PHP e Javascript
-
21-09-2019 - |
Domanda
Ho uno Zend Framework URI come / regolatore / action / var1 / valore1 / var2 / valore2.
-
Valore2 ha un carattere di spazio in esso. Come devo codificare in PHP? Quando UrlEncode uso con valore2, questo converte spazio in '+' invece di '% 20f'. Che è ok?
-
Questa value2 è aggiunto anche in una posizione href da JavaScript sul lato client. Sto usando la funzione di fuga lì, ma quando clicco link che ho né vedere '+' né '% 20f' in Firefox barra degli indirizzi. Anche se quando lo vedo in Firebug scheda 'net', vedo% 20F.
Quali funzioni devo usare in PHP e JavaScript?
Soluzione
A proposito di tua prima domanda, vale a dire la differenza tra urlencode
e rawurlencode
:
var_dump(urlencode("hello, world"));
si arriva:
string 'hello%2C+world' (length=14)
Mentre
var_dump(rawurlencode("hello, world"));
si arriva:
string 'hello%2C%20world' (length=16)
Credo che entrambi dovrebbero essere OK; ma sentitevi liberi di fare un tentativo, nel caso; -)
Circa il secondo punto: Firefox cerca di rendere gli URL "più bella", la visualizzazione in modo leggibile, anziché codificato - che è un male per noi sviluppatori, ma piacevole per gli utenti finali
Per esempio, se si digita l'URL nella barra degli indirizzi di Firefox:
http://tests/temp/temp.php?a=hello%2C%20world
Quando si preme il Invio chiave, è automaticamente tradotto in
http://tests/temp/temp.php?a=hello%2C%20world
Se funziona il modo in cui si sta facendo (e, come si sta vedendo un URL codificato con Firebug, probabilmente lavorando) , OK di tutto; -)