http_build_query() (PHP 5) http_build_query -- Gnre une chane de requte en encodage URLDescription string http_build_query ( array formdata [, string numeric_prefix])
http_build_query() gnre une chane en encodage URL,
construite partir du tableau index ou associatif
formdata. formdata
peut tre un tableau ou un objet contenant une structure
mono-dimensionnelle simple, ou un tableau de tableaux (qui peuvent aussi
contenir des tableaux). Si des indices numriques sont utiliss dans
le tableau de base et que numeric_prefix est fourni,
il sera utilis pour prfixer les noms des index pour les lments du tableau
de base seulement.
Cela permet de gnrer des noms de variables valides, si les donnes sont
ensuite dcodes par PHP ou une application CGI.
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
?>
|
|
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 lisibilit)
user[name]=Bob+Smith&user[age]=47&user[sex]=M&user[dob]=5%1F12%1F1956&
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 lments indexs numriquement ("CEO") dans le tableau de base
sont prfixs. Les autres indices numriques d'autres niveaux n'ont
pas besoins d'tre prfixs 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
?>
|
|
Voir aussi
parse_str(),
parse_url(),
urlencode() et
array_walk().
|