php URL décoder obtenir le " + " à partir de l'URL
Donc je suis en train de coder/décoder une url lors du décodage sera de retour le codé +
de symboles à partir de l'url. Par exemple, j'ai coderwebsite.com/index.php?eq=1+12
qui lorsqu'ils sont encodés tourne la +
en %2B
, comme il se doit. Quand j'ai récupérer la valeur de $_REQUEST['eq']
et l'utilisation urldecode()
echo est comme "1 12"
. Je n'arrive pas à obtenir le décoder pour ramener le +
pour ainsi dire. Suis-je en train de faire quelque chose de mal ici, ou est-il plus efficace/le meilleur moyen d'y parvenir? Ici est l'exact encoder/décoder les lignes que j'utilise.
Présenter La Page
<?php
$eq = "1+12";
$send = '<a href="website.com/index.php?eq='.urlencode($eq).'</a>';
echo $send;
La page de recherche d'
<?php
$eq = urldecode($_REQUEST['eq']);
echo $eq;
?>
OriginalL'auteur Ed R | 2011-03-31
Vous devez vous connecter pour publier un commentaire.
Ne pas exécuter
urldecode
, les données$_REQUEST
est automatiquement décodé pour vous.Un signe plus, dans une URL, est codée dans l'espace. PHP décode la valeur hexadécimale d'un
+
automatiquement. Puis, en exécutant le résultat par le biais deurldecode
, vous êtes manuellement (et à tort) le décodage de la+
à un.
Il n'a pas quand j'ai copier/coller de ce code et supprimer les
urldecode
déclaration.Je ne suis pas sûr, peut-être que la version de php est différent et fonctionne différemment? Ou peut-être d'autres parties de ma page contradictoires. J'ai pensé à une solution de contournement en utilisant str_replace(" ", "+", $eq). Probablement pas idéal, mais depuis que mon URL n'aurez plus jamais besoin d'espaces, semble fonctionner. Je vous remercie pour votre aide.
C'est probablement une autre partie de votre code. Vous devez suivre et de trouver ce qui le modifie et où (en commençant par vérifier que l'URL du lien est effectivement contenant
eq=1%2B12
."ensuite, manuellement, vous décoder le + pour un ." hmm? comment
OriginalL'auteur Quentin
Essayez d'utiliser la fonction
rawurldecode()
au lieu deurldecode()
OriginalL'auteur Maurice
Je le coder en JavaScript avec
encodeURIComponent()
et le décoder en PHP avecrawurldecode()
et il encode/décode correctement pour moi, y compris le "+", mais PAS avecurldecode()
OriginalL'auteur adrianTNT