Rechercher une fonction PHP

http_build_query

(PHP 5, PHP 7)

http_build_queryGénère une chaîne de requête en encodage URL

Description

string http_build_query ( mixed $query_data [, string $numeric_prefix [, string $arg_separator [, int $enc_type = PHP_QUERY_RFC1738 ]]] )

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

  

Liste de paramètres

query_data

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

Si query_data est un tableau, alors ce peut être un tableau à une ou plusieurs dimensions.

Si query_data est un objet, alors seuls les attributs publics seront utilisés dans le résultat.

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 mais peut être modifiée en spécifiant ce paramètre.

enc_type

Par défaut, vaut PHP_QUERY_RFC1738.

Si enc_type vaut PHP_QUERY_RFC1738, alors l'encodage est effectué conformément à la » RFC 1738 et les espaces du type de média application/x-www-form-urlencoded, qui est impacté par ce choix, seront encodés sous la forme d'un signe plus (+).

Si enc_type vaut PHP_QUERY_RFC3986, alors l'encodage est effectué conformément à la » RFC 3986, et les espaces seront encodés en signe pourcent (%20).

  

Valeurs de retour

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

  

Historique

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

  

Exemples

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) . "\n";
echo 
http_build_query($data'''&amp;');

?>

L'exemple ci-dessus va afficher :

foo=bar&baz=boom&cow=milk&php=hypertext+processor
foo=bar&amp;baz=boom&amp;cow=milk&amp;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) . "\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 #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%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 #4 Utilisation de http_build_query() avec un objet

<?php
class parentClass {
    public    
$pub      'publicParent';
    protected 
$prot     'protectedParent';
    private   
$priv     'privateParent';
    public    
$pub_bar  Null;
    protected 
$prot_bar Null;
    private   
$priv_bar Null;

    public function 
__construct(){
        
$this->pub_bar  = new childClass();
        
$this->prot_bar = new childClass();
        
$this->priv_bar = new childClass();
    }
}

class 
childClass {
    public    
$pub  'publicChild';
    protected 
$prot 'protectedChild';
    private   
$priv 'privateChild';
}

$parent = new parentClass();

echo 
http_build_query($parent);
?>

L'exemple ci-dessus va afficher :

pub=publicParent&pub_bar%5Bpub%5D=publicChild

  

Voir aussi

  • parse_str() - Analyse une chaîne de caractères d'une variable
  • parse_url() - Analyse une URL et retourne ses composants
  • urlencode() - Encode une chaîne en URL
  • array_walk() - Exécute une fonction fournie par l'utilisateur sur chacun des éléments d'un tableau

Rechercher une fonction PHP

Version en cache

24/11/2024 18:16:59 Cette version de la page est en cache (à la date du 24/11/2024 18:16:59) afin d'accélérer le traitement. Vous pouvez activer le mode utilisateur dans le menu en haut pour afficher la dernère version de la page.

Document créé le 30/01/2003, dernière modification le 26/10/2018
Source du document imprimé : https://www.gaudry.be/php-rf-function.http-build-query.html

L'infobrol est un site personnel dont le contenu n'engage que moi. Le texte est mis à disposition sous licence CreativeCommons(BY-NC-SA). Plus d'info sur les conditions d'utilisation et sur l'auteur.

Références

  1. Consulter le document html Langue du document :fr Manuel PHP : http://php.net

Ces références et liens indiquent des documents consultés lors de la rédaction de cette page, ou qui peuvent apporter un complément d'information, mais les auteurs de ces sources ne peuvent être tenus responsables du contenu de cette page.
L'auteur de ce site est seul responsable de la manière dont sont présentés ici les différents concepts, et des libertés qui sont prises avec les ouvrages de référence. N'oubliez pas que vous devez croiser les informations de sources multiples afin de diminuer les risques d'erreurs.

Table des matières Haut