Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Probleme avec le caractere & dans un lien

4 réponses
Avatar
Alain Brillant
Comment faire pour que le caractère & ne soit pas interprété comme une
2eme variable dans un lien.

Soit une base de donnée contenant des artistes.

Je récupère un artiste :
$artiste = "SIMON & GARFUNKEL"

Je passe cette variable dans le lien :
articles.php?article=$artiste

Dans articles.php, je récupère avec :
$article = $_REQUEST['article']

Et la variable article ne contient que SIMON à cause du &

Comment faire pour récupérer SIMON & GARFUNKEL

Merci si cette question semble idiote, mais je débute en PHP.

4 réponses

Avatar
Olivier Miakinen
Comment faire pour que le caractère & ne soit pas interprété comme une
2eme variable dans un lien.


<cit. http://www.ietf.org/rfc/rfc2396.txt>
escaped = "%" hex hex
hex = digit | "A" | "B" | "C" | "D" | "E" | "F" |
"a" | "b" | "c" | "d" | "e" | "f"
</>

Par exemple l'espace peut se coder %20 et l'esperluette %26

Comment faire pour récupérer SIMON & GARFUNKEL


SIMON%20%26%20GARFUNKEL

Voir aussi <http://www.php.net/manual/fr/function.urlencode.php> et les
autres fonctions de <http://www.php.net/manual/fr/ref.url.php>.

Avatar
Fabien V
Alain Brillant Wrote:

Comment faire pour que le caractère & ne soit pas interprété comme une
2eme variable dans un lien.



Ca devrait marcher en changeant le séparateur pour les variables passées en GET :
ini_set('arg_separator.output','&amp;');

Il faut ensuite utiliser &amp; à la place de & dans les url.

Avatar
m-e-
"Alain Brillant" a écrit dans le
message de news: 444d0ba5$0$24224$
[...]
Je récupère un artiste :
$artiste = "SIMON & GARFUNKEL"

Je passe cette variable dans le lien :
articles.php?article=$artiste


http://fr3.php.net/manual/fr/function.urlencode.php

"articles.php?article=" . urlencode($artiste);

Avatar
Alain Brillant
"m-e-" a écrit dans le message de news:
444f5d59$0$19704$

http://fr3.php.net/manual/fr/function.urlencode.php

"articles.php?article=" . urlencode($artiste);


OK merci à tous ça marche.