Manuel PHP
Précédent |  | Suivant

# urlencode

(PHP 3, PHP 4, PHP 5)

urlencode -- Encode une chaîne en URL

## Description

string urlencode ( string str )

urlencode() retourne une chaîne dont les caractères non alpha-numériques (hormis `-_.`) sont remplacés par des séquences commençant par un caractère pourcentage (`%`), suivi de deux chiffres hexadécimaux. Les espaces sont remplacés par des signes plus (`+`). Ce codage est celui qui est utilisé pour poster des informations dans les formulaires HTML. Le type MIME est `application/x-www-form-urlencoded`. Ce codage est différent de celui spécifié dans la RFC 1738 (voir rawurlencode()) : pour des raisons historiques, les espaces sont remplacés par des signes plus (`+`). urlencode() est pratique pour transmettre des informations via une URL. C'est aussi un moyen de passer des informations d'une page à l'autre.

Exemple 1. Exemple avec urlencode()

`<?php echo '<a href="moncgi?foo=', urlencode ($userinput), '">'; ?>`

Note : faites bien attention aux variables qui ressemblent à des entités HTML, comme &amp, &copy et &pound, qui sont analysées par le client web et remplacées par leur valeur. C'est un vrai problème qui a été montré par le W3C depuis longtemps. La référence est ici : http://www.w3.org/TR/html4/appendix/notes.html#h-B.2.2. PHP supporte le remplacement de séparateur d'arguments par un point-virgule, comme recommandé par le W3C, grâce à la directive `arg_separator` du fichier `php.ini`. Malheureusement, la plupart des clients web n'envoient pas leurs données de formulaire avec des points-virgules. Une solution plus portable est d'utiliser `&amp;` à la place de `&` comme séparateur. Vous n'avez alors pas à changer la directive `arg_separator`. Laissez-la à &, mais encodez vos URL en utilisant htmlentities() ou htmlspecialchars().

Exemple 2. Exemple avec urlencode() et htmlentities()

`<?php $query_string = 'foo=' . urlencode($foo) . '&bar=' . urlencode($bar); echo '<a href="moncgi?' . htmlentities($query_string) . '">'; ?>`

Voir aussi urldecode(), htmlentities(), rawurldecode() et rawurlencode().

Précédent | Sommaire | Suivant
urldecode | Niveau supérieur | Fonctions de gestion des variables