http_build_query
(PHP 5)
http_build_query -- Génère une chaîne de requête en encodage URL
Description
string
http_build_query ( array formdata [, string numeric_prefix [, string arg_separator]] )
http_build_query() génère une chaîne en encodage URL,
construite à partir du tableau indexé ou associatif
formdata
. formdata
peut être un tableau ou un objet contenant une structure
monodimensionnelle simple, ou un tableau de tableaux (qui peuvent aussi
contenir des tableaux). Si des indices numériques sont utilisés dans
le tableau de base et que numeric_prefix
est fourni,
il sera utilisé pour préfixer les noms des index pour les éléments du tableau
de base seulement. Cela permet de générer des noms de variables valides, si
les données sont ensuite décodées par PHP ou une application CGI.
Note :
arg_separator.output est
utilisée pour séparer les arguments tant que le paramètre
arg_separator
n'est pas fourni.
Exemple 1. Utilisation simple de http_build_query()
<?php $data = array('foo'=>'bar', 'baz'=>'boom', 'cow'=>'milk', 'php'=>'hypertext processor');
echo http_build_query($data); // foo=bar&baz=boom&cow=milk&php=hypertext+processor echo http_build_query($data, '', '&'); // foo=bar&baz=boom&cow=milk&php=hypertext+processor ?>
|
|
Exemple 2. http_build_query() avec tableau indexé.
<?php $data = array('foo', 'bar', 'baz', 'boom', 'cow' => 'milk', 'php' =>'hypertext processor');
echo http_build_query($data); /* affiche : 0=foo&1=bar&2=baz&3=boom&cow=milk&php=hypertext+processor */
echo http_build_query($data, 'myvar_'); /* affiche : myvar_0=foo&myvar_1=bar&myvar_2=baz&myvar_3=boom&cow=milk&php=hypertext+processor */ ?>
|
|
Exemple 3. http_build_query() avec tableau complexe
<?php $data = array('user'=>array('name'=>'Bob Smith', 'age'=>47, 'sex'=>'M', 'dob'=>'5/12/1956'), 'pastimes'=>array('golf', 'opera', 'poker', 'rap'), 'children'=>array('bobby'=>array('age'=>12, 'sex'=>'M'), 'sally'=>array('age'=>8, 'sex'=>'F')), 'CEO');
echo http_build_query($data, 'flags_'); ?>
|
cet exemple va afficher : (sur plusieurs lignes pour la lisibilité)
user[name]=Bob+Smith&user[age]=47&user[sex]=M&user[dob]=5%2F12%2F1956&
pastimes[0]=golf&pastimes[1]=opera&pastimes[2]=poker&pastimes[3]=rap&
children[bobby][age]=12&children[bobby][sex]=M&children[sally][age]=8&
children[sally][sex]=F&flags_0=CEO |
Note :
Seuls les éléments indexés numériquement ("CEO")
dans le tableau de base sont préfixés. Les autres indices numériques à
d'autres niveaux n'ont pas besoin de l'être pour avoir des noms valides.
|
Exemple 4. Utilisation de http_build_query() avec un objet
<?php class myClass { var $foo; var $baz;
function myClass() { $this->foo = 'bar'; $this->baz = 'boom'; } }
$data = new myClass();
echo http_build_query($data); // foo=bar&baz=boom ?>
|
|
Note :
Le paramètre arg_separator
a été ajouté en PHP 5.1.2.
Voir aussi
parse_str(),
parse_url(),
urlencode() et
array_walk().