http_build_query

(PHP 5, PECL pecl_http:0.1.0-0.9.0)

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]] )

Génère une chaîne en encodage URL, construite à partir du tableau indexé ou associatif formdata .

Liste de paramètres

formdata

Peut être un tableau ou un objet contenant des propriétés.

Le tableau peut avoir une structure à une dimension ou un tableau de tableaux (qui peuvent également contenir d'autres tableaux).

numeric_prefix

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.

arg_separator

arg_separator.output est utilisée pour séparer les arguments tant que le paramètre arg_separator n'est pas fourni.

Valeurs de retour

Retourne une chaîne de caractères encodée URL.

Historique

Version Description
5.1.2 Le paramètre arg_separator a été ajouté.
5.1.3 Les crochets sont échappés.

Exemples

Exemple 2744. 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 '' '&amp;' );  // foo=bar&amp;baz=boom&amp;cow=milk&amp;php=hypertext+processor

?>

Exemple 2745. http_build_query() avec tableau indexé

<?php
$data 
= array( 'foo' 'bar' 'baz' 'boom' 'cow'  =>  'milk' 'php'  => 'hypertext processor' );

echo 
http_build_query ( $data ) .  "\n" ;
echo 
http_build_query ( $data 'myvar_' );
?>

L'exemple ci-dessus va afficher :

0=foo&1=bar&2=baz&3=boom&cow=milk&php=hypertext+processor
myvar_0=foo&myvar_1=bar&myvar_2=baz&myvar_3=boom&cow=milk&php=hypertext+processor

   

Exemple 2746. 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%5Bname%5D=Bob+Smith&user%5Bage%5D=47&user%5Bsex%5D=M&
user%5Bdob%5D=5%2F12%2F1956&pastimes%5B0%5D=golf&pastimes%5B1%5D=opera&
pastimes%5B2%5D=poker&pastimes%5B3%5D=rap&children%5Bbobby%5D%5Bage%5D=12&
children%5Bbobby%5D%5Bsex%5D=M&children%5Bsally%5D%5Bage%5D=8&
children%5Bsally%5D%5Bsex%5D=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 2747. 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()
array_walk()