encodage spatial URI Zend Framework en PHP et Javascript
-
21-09-2019 - |
Question
J'ai un URI Zend Framework comme / contrôleur / action / var1 / valeur1 / var2 / valeur2.
-
Valeur2 a un espace en elle. Comment puis-je coder en PHP? Lorsque j'utilise urlencode avec valeur2, ce convertit l'espace en « + » au lieu de '% 20f. Est-ce ok?
-
valeur2 est également ajouté à un emplacement href par javascript côté client. J'utilise la fonction d'échappement là, mais quand je clique sur le lien, je ne voir « + » ni « % 20f » dans la barre d'adresse de Firefox. Bien que quand je le vois dans Firebug onglet 'net', je vois% 20f.
Quelles fonctions dois-je utiliser en PHP et javascript?
La solution
À propos de votre première question, qui est la différence entre urlencode
et rawurlencode
:
var_dump(urlencode("hello, world"));
Est-ce que vous obtenez:
string 'hello%2C+world' (length=14)
Alors que
var_dump(rawurlencode("hello, world"));
vous obtiendrez:
string 'hello%2C%20world' (length=16)
Je suppose que les deux devraient être OK; mais ne hésitez pas à essayer, juste au cas où; -)
A propos du second point: Firefox tente de faire des URL « plus joli », les afficher d'une manière lisible par l'homme, au lieu de encodée - ce qui est mauvais pour nous developpeurs, mais agréable à l'utilisateur final
Par exemple, si je saisis cette URL dans la barre d'adresse de Firefox:
http://tests/temp/temp.php?a=hello%2C%20world
Lorsque j'appuie sur la touche Entrée touche, il est traduit automatiquement
http://tests/temp/temp.php?a=hello%2C%20world
Si cela fonctionne comme vous le faites (et, comme vous voyez une URL encodée avec Firebug, il travaille probablement) , le OK de tout; -)