Bonjour,
J'ai un menu avec des liens de ce type

        <li><a href="index.php?langue=F&amp;type=texte&amp;Id_Texte=Internet"><img src="images/info16.gif" alt="ico" />Informations</a></li>

J'encode bien les & avec ;amp mais le problème c'est que lorsque je récupère l'url avec

$URL=$_SERVER['QUERY_STRING'];

<li><a href="index.php?<?php echo ereg_replace("langue=F", "langue=D", $URL)?>" title="Deutsche Version">Deutsch</a></li>

Il me donne l'url avec les & non encodés...
Il y a t'il un moyen d'encoder ces caractères??
Merci pour vos réponse s
Modifié par gagarine (09 Jun 2005 - 09:53)
Euh, ça va sans doute paraître super-con ce que je vais proposer, mais...

<li><a href="index.php?<?php echo ereg_replace("langue=F", "langue=D", htmlspecialchars($URL))?>" title="Deutsche Version">Deutsch</a></li>


Pour moi c'est tout à fait normal que tu ne récupères pas l'url encodée...
Non ça fonctionne pas parce que htmlspecialchars remplace aussi les guillemets et autre
a écrit :
Les remplacements effectués sont :
· " & " (et commercial) devient " &amp; "
· " " " (guillemets doubles) devient " &quot; " lorsque ENT_NOQUOTES n'est pas utilisé.
· " ' " (guillemet simple) devient " &#039; " uniquement lorsque ENT_QUOTES est utilisé.
· " < " (supérieur à) devient " &lt; "
· " > " (supérieur à) devient " &gt; "

Mais c'est bon je fait str_replace quand je reçoit l'url et j'ai pas de problème..
Merci quand même!
Si tu travailles avec php, il existe 2 fonctions qui permettent de coder / décoder les url : urlencode et sa soeur siamoise urldecode...
A toi de jouer Smiley cligne
J'ai le même problème et je trouve ça lourd parceque j'ai ajouté en début de script :
ini_set('arg_separator.output,'&amp;');
qui est censé ajuster les URL formées par PHP (donc je me disais $_SERVER['QUERY_STRING']) mais sans succès Smiley decu
TopperH a écrit :
ini_set('arg_separator.output,'&amp;');
qui est censé ajuster les URL formées par PHP

Hein ? C'est juste sensé utiliser &amp; comme séparateur en cas d'ajout de l'identifiant de session dans une URL (typiquement PHPSESSID=15af9...), ça ne touche absolument pas au reste.

gagarine a écrit :
Non ça fonctionne pas parce que htmlspecialchars remplace aussi les guillemets et autre

Ça fonctionne très bien, où est le problème ? Tu comptais avoir des guillemets doubles < en dur dans ton code ?

PS : la gestion des entités n'est pas top sur ce forum...
djfeat a écrit :

Hein ? C'est juste sensé utiliser & comme séparateur en cas d'ajout de l'identifiant de session dans une URL (typiquement PHPSESSID=15af9...), ça ne touche absolument pas au reste.


La doc PHP est assez laconique et mentionne
a écrit :

arg_separator.output string :

Le séparateur utilisé lorsque PHP génère les URLs pour séparer les arguments.


Je crois qu'on pourrait légitimement penser qu'il s'agit de TOUTES les URL renvoyées par PHP et pas seulement celles des sessions. Dommage qu'ils n'aillent pas jusqu'au bout de leur idée...